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
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP