leetcode 482. License Key Formatting 密钥格式化
·
Problem: 482. 密钥格式化
Solution题过程
保存大写后的字母,然后计算余数,开始字符串拼入,后面的指针后移即可,判断个数就行了
复杂度
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( n ) O(n) O(n)
Code
class Solution {
public:
string licenseKeyFormatting(string s, int k) {
vector<char> tr;
for(auto c : s) {
if( c != '-' ) {
if(isdigit(c)) {
tr.push_back(c);
} else {
tr.push_back(toupper(c));
}
}
}
int remain = tr.size() % k, l = 0, sum = 0;
string ret;
while(l < remain) {
ret += tr[l++];
}
if( l > 0) {
ret += '-';
}
while(l < tr.size()) {
ret += tr[l++];
sum++;
if(sum % k == 0) {
ret += '-';
}
}
if(ret.size() > 0 && ret.back() == '-') {
ret.pop_back();
}
return ret;
}
};
更多推荐
所有评论(0)