[滑動窗口]面試題 01.06. 字符串壓縮(easy)

題目:
在這裏插入圖片描述
題解:

  • 滑動窗口,當s[i]!=s[j]時,直接將j指針移動到i指針的位置,縮小窗口;當s[i]==s[j]時,i指針右移,擴大窗口。

代碼如下:

class Solution {
public:
    //解法:滑動窗口,當s[i]!=s[j]時,直接將j指針移動到i指針的位置,縮小窗口;當s[i]==s[j]時,i指針右移,擴大窗口
    string compressString(const string& S) {
        string res="";
        int i=0,j=0,n=S.size();
        while(i<n){
            if(i==n-1&&S[j]==S[i]){
                res.push_back(S[j]);
                res+=to_string(i-j+1);//窗口大小i-j+1
            }
            if(S[i]!=S[j]){
                res.push_back(S[j]);
                res+=to_string(i-j);//窗口大小i-j
                j=i;
            }
            else i++;
        }
        return res.size()>=n?S:res;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章