用C ++压缩字符串

假设我们有一个字符串s,我们必须从给定的字符串中消除连续的重复字符并返回它。因此,如果列表包含连续的重复字符,则应将其替换为该字符的单个副本。元素的顺序将与之前相同。

因此,如果输入像“ heeeeelllllllloooooo”,那么输出将是“ helo”

为了解决这个问题,我们将遵循以下步骤-

  • ret:=一个空白字符串

  • 对于初始化i:= 0,当i <s的大小时,更新(将i增加1),执行-

    • 忽略以下部分,跳至下一个迭代

    • 如果ret的大小不为零,并且ret的最后一个元素与s [i]相同,则-

    • ret:= ret连接s [i]

    • 返回ret

    让我们看下面的实现以更好地理解-

    示例

    #include <bits/stdc++.h>
    using namespace std;
    class Solution {
       public:
       string solve(string s) {
          string ret = "";
          for(int i = 0; i < s.size(); i++){
             if(ret.size() && ret.back() == s[i]){
                continue;
             }
             ret += s[i];
          }
          return ret;
       }
    };
    int main(){
       Solution ob;
       cout << (ob.solve("heeeeelllllllloooooo"));
    }

    输入项

    "heeeeelllllllloooooo"

    输出结果

    helo