给你一个字符串形式的电话号码 number 。number 由数字、空格 ' '、和破折号 '-' 组成。
请你按下述方式重新格式化电话号码。
首先,删除 所有的空格和破折号。
其次,将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。剩下的数字将按下述规定再分块:
2 个数字:单个含 2 个数字的块。
3 个数字:单个含 3 个数字的块。
4 个数字:两个分别含 2 个数字的块。
最后用破折号将这些块连接起来。注意,重新格式化过程中 不应该 生成仅含 1 个数字的块,并且 最多 生成两个含 2 个数字的块。
返回格式化后的电话号码。
把所有“-”和空格删掉,只保留数字,然后每三个数字加一个“-”
最后判断倒数第二个位置是不是“-”,如果是,就和倒数第三个位置交换
class Solution{
public:
string reformatNumber(string number){
string str,res;
for(auto &s:number){
if(s!=' '&&s!='-')str+=s;
}
res=str[0];
for(int i=1;i<str.size();i++){
if(i%3==0)res+='-';
res+=str[i];
}
if(res[res.size()-2]=='-')swap(res[res.size()-2],res[res.size()-3]);
return res;
}
};