1 Star 0 Fork 0

MetaverseMobile/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
443_压缩字符串.cpp 1.41 KB
一键复制 编辑 原始数据 按行查看 历史
MetaverseMobile 提交于 2021-08-22 13:58 +08:00 . add 443_压缩字符串.cpp.
class Solution {
public:
int compress(vector<char>& chars) {
int ans = 0;
int count = 0;
chars.insert(chars.begin(), chars.begin(), chars.begin()+1);
vector<char> &s = chars;
/*
cout << "[";
for (auto ch : s) {
cout << ch << ", ";
}
cout << "]" << endl;
*/
int j = 1;
for (int i = 1; i < s.size(); i++) {
if (s[i] == s[i-1])
count++;
else {
// cout << s[i-1] << " : ";
s[j++] = s[i-1];
if (count > 1) {
string tmp = to_string(count);
ans += 1 + tmp.size();
for (const auto &ch : tmp) {
s[j++] = ch;
}
}
else {
ans++;
}
// cout << count << endl;
count = 1;
}
}
// cout << s.back() << " : " << count << endl;
s[j++] = s.back();
if (count > 1) {
string tmp = to_string(count);
ans += 1 + tmp.size();
for(const auto &ch : tmp)
chars[j++] = ch;
}
else {
ans ++;
}
chars.erase(chars.begin());
return ans;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/MetaverseMobile/leetcode.git
git@gitee.com:MetaverseMobile/leetcode.git
MetaverseMobile
leetcode
leetcode
main

搜索帮助