1694. 重新格式化电话号码 - 力扣(LeetCode)


class Solution {
public String reformatNumber(String number) {
StringBuffer sb=new StringBuffer();
int count=0;
for(int i=0;i<number.length();i++){
if(Character.isDigit(number.charAt(i))){
sb.append(number.charAt(i));
count++;
}
if(count==3){
sb.append('-');
count=0;
}
}
int le=sb.length();
if(le%4==0){
sb.delete(le-1,le);
}
else if(le%4==1){
sb.delete(le-2,le-1);
sb.insert(le-3,'-');
}
return sb.toString();
}
}
class Solution:
def reformatNumber(self, number):
# 使用列表来高效地构建字符串
sb = []
count = 0 # 用于跟踪当前数字的数量
# 遍历输入字符串中的每个字符
for i in range(len(number)):
if number[i].isdigit():
sb.append(number[i]) # 如果是数字,添加到列表中
count += 1
if count == 3: # 每三个数字后添加一个连字符
sb.append('-')
count = 0 # 重置计数器
le = len(sb) # 获取列表的长度
# 根据列表的长度调整格式
if le % 4 == 0:
# 如果长度是4的倍数,删除最后一个连字符
del sb[-1]
elif le % 4 == 1:
# 如果长度模4余1,调整格式
del sb[-2] # 删除倒数第二个字符
sb.insert(le - 3, '-') # 在合适的位置插入连字符
# 将列表转换为字符串并返回
return ''.join(sb)
1万+

被折叠的 条评论
为什么被折叠?



