leetcode 443. ???????????????(String Compression)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 443. ???????????????(String Compression)相关的知识,希望对你有一定的参考价值。
??????????????? com size res ref str ?????? int ????????????
???????????????
??????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????
???????????????????????????????????????1 ?????????????????? int ??????????????????
??????????????????????????????????????????????????????????????????
?????? 1???
?????????
["a","a","b","b","c","c","c"]
?????????
??????6?????????????????????6?????????????????????["a","2","b","2","c","3"]
?????????
"aa"???"a2"?????????"bb"???"b2"?????????"ccc"???"c3"?????????
?????? 2???
?????????
["a"]
?????????
??????1?????????????????????1?????????????????????["a"]
?????????
?????????????????????????????????
?????? 3???
?????????
["a","b","b","b","b","b","b","b","b","b","b","b","b"]
?????????
??????4?????????????????????4?????????????????????["a","b","1","2"]???
?????????
????????????"a"????????????????????????????????????"bbbbbbbbbbbb"??????b12????????????
?????????????????????????????????????????????????????????
?????????
??????????????????O(1) ?????????????????????
?????????
- ????????????????????????ASCII??????
[35, 126]
???????????? 1 <= len(chars) <= 1000
???
?????????
class Solution {
public:
string toString(int num){
string res = "";
if(num == 0){
return "0";
}else{
while(num != 0){
res = char(num%10 + '0') + res;
num /= 10;
}
return res;
}
}
int compress(vector<char>& chars) {
int sz = chars.size();
int i = 0, j = 0, idx = 0;
while(i < sz){
while(j < sz && chars[j] == chars[i]){
j++;
}
int num = j - i;
chars[idx++] = chars[i];
if(num != 1){
string _num = toString(num);
for(char ch : _num){
chars[idx++] = ch;
}
}
i = j;
}
return idx;
}
};
以上是关于leetcode 443. ???????????????(String Compression)的主要内容,如果未能解决你的问题,请参考以下文章
443. String Compression - LeetCode
leetcode443. String Compression
leetcode 443. ???????????????(String Compression)
Leetcode 443 String Compression