
链接:482. 密钥格式化
题解:
class Solution {
public:
string licenseKeyFormatting(string s, int k) {
if (s.size() <= 0) {
return s;
}
std::string result;
//result.reserve(s.size());
int tail = 0;
int k_cnt = 0;
for (int i = s.size()-1; i >= 0; --i) {
if (s[i] == '-') {
continue;
}
if (k_cnt >= k) {
result.push_back('-');
++i;
k_cnt = 0;
continue;
}
if (s[i] >= '0' && s[i] <= '9') {
result.push_back(s[i]);
} else if (islower(s[i])) {
result.push_back(toupper(s[i]));
} else {
result.push_back(s[i]);
}
++k_cnt;
}
reverse(result.begin(), result.end());
return result;
}
};