Every day a leetcode
题目来源:482. 密钥格式化
解法1:模拟
先将字符串s的非‘-’字符存储到数组里,再按要求逆序构建重新格式化的许可密钥,最后反转字符串即为答案。
代码:
/*
* @lc app=leetcode.cn id=482 lang=cpp
*
* [482] 密钥格式化
*/
// @lc code=start
class Solution
{
public:
string licenseKeyFormatting(string s, int k)
{
vector<char> v;
for (int i = 0; i < s.size(); i++)
{
if (s[i] != '-')
{
if (islower(s[i]))
v.push_back(toupper(s[i]));
else
v.push_back(s[i]);
}
}
string ans = "";
int count = 0;
for (int i = v.size() - 1; i >= 0; i--)
{
ans += v[i];
count++;
if (count == k)
{
if (i != 0)
ans += "-";
count = 0;
}
}
reverse(ans.begin(), ans.end());
return ans;
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(n),其中n为字符串s的长度。
空间复杂度:O(n),其中n为字符串s的长度。