给定一个许可密钥字符串 s,仅由字母、数字字符和破折号组成。字符串由 n 个破折号分成 n + 1 组。你也会得到一个整数 k 。
我们想要重新格式化字符串 s,使每一组包含 k 个字符,除了第一组,它可以比 k 短,但仍然必须包含至少一个字符。此外,两组之间必须插入破折号,并且应该将所有小写字母转换为大写字母。
返回 重新格式化的许可密钥 。

class Solution {
public:
string licenseKeyFormatting(string s, int k) {
s.erase(remove(s.begin(), s.end(), '-'), s.end());
for(int i = 0 ; i < s.size();i++)
{
if(s[i] >= 'a'&&s[i] <= 'z')
s[i] -=32;
}
reverse(s.begin(),s.end());
for(int i = k ; i < s.size();i=i+k+1)
{
s.insert(i,"-");
}
reverse(s.begin(),s.end());
return s;
}
};
思路:
有点笨,可能消耗比较大,先删除,再反转,再插入,再反转
959

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



