problem
Input ["a","a","b","b","c","c","c"] Output ["a","a","b","b","c","c"] Expected ["a","2","b","2","c","3"]
a:
Given an array of characters, compress it in-place. After you are done modifying the input array in-place, return the new length of the array.
ss
Input ["a","a","a","b","b","a","a"] Output ["a","5","b","2"] Expected ["a","3","b","2","a","2"]
ss
solution1:
class Solution { public: int compress(vector<char>& chars) { if(chars.empty()) return 0; string res=""; char cur, pre; int num = 0; for(int i=0; i<chars.size(); i++) { cur = chars[i]; if(i==0) { res += cur; pre = cur; } if(cur!=pre) { if(num>1) res += to_string(num);// res += cur; pre = cur; num = 1; } else num++; } if(num>1) res += to_string(num); // int len = 0; if(res.size()> chars.size()) len = chars.size(); else if(res.size()<=chars.size()) { len = res.size(); for(int i=0;i<res.size(); i++) { chars[i] = res[i]; } } return len; } };
参考
1. Leetcode_443. String Compression;
完