自己的代码
class Solution {
public:
string licenseKeyFormatting(string s, int k) {
string ans="";
int num=0;
int len=s.length();
for(int i=0;i<len;i++)
{
if(s[i]!='-')
{
ans+=s[i];
num++;
}
}
int q=num%k;int p=num/k;
if(q==0&&p>0)
{
for(int i=1;i<p;i++)
{
ans.insert(i*k+i-1,"-");
}
}
else if(q>0&&p>0)
{
ans.insert(q,"-");
for(int i=1;i<p;i++)
{
ans.insert(q+i*k+i,"-");
}
}
len=ans.length();
for(int i=0;i<len;i++)
{
if(!(ans[i]>='0'&&ans[i]<='9'))
if(ans[i]!='-')
ans[i]=ans[i]&0xDF;
}
return ans;
}
};
题解从后往前这个思路比较好
class Solution {
public:
string licenseKeyFormatting(string s, int k) {
string ans;
int cnt = 0;
for (int i = s.size() - 1; i >= 0; i--) {
if (s[i] != '-') {
ans.push_back(toupper(s[i]));
cnt++;
if (cnt % k == 0) {
ans.push_back('-');
}
}
}
if (ans.size() > 0 && ans.back() == '-') {
ans.pop_back();
}
reverse(ans.begin(), ans.end());
return ans;
}
};
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/license-key-formatting/solution/mi-yao-ge-shi-hua-by-leetcode-solution-xnae/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。