title: 443. String Compression
tags:
categories: leetcode
comments: false
class Solution {
public:
int compress(vector<char>& chars) {
int times=1, n=chars.size();
if(n==1) return 1;
char cur = chars[0];
string ret;
for(int i =1;i<n ; ++i){
if(chars[i] != cur){
if(times>1){
ret+=cur;
ret+=to_string(times);
}
else ret+=cur;
cur=chars[i];
times=1;
}
else times++;
}
ret+=cur;
if(times>1) ret+=to_string(times);
chars.resize(ret.size());
for(int i=0;i<chars.size() ; ++i){
chars[i] = ret[i];
}
return ret.size();
}
};
- time complexity
O(n)
- space complexity
O(n)