Leetcode 443. 压缩字符串 经典双指针算法

it2024-05-10  51

 

用经典的双指针操作,这里实际上是三个指针在动,最前面的是答案数组k

class Solution { public: int compress(vector<char>& chars) { int k = 0; for(int i=0,j=0;j<chars.size();j++){ while(j<chars.size()&&chars[i]==chars[j]) j++; j--; chars[k++] = chars[i]; if(j!=i){ string num = to_string(j-i+1); for(auto c:num){ chars[k++] = c; } } i = j+1; } return k; } };

 

最新回复(0)