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