獲得具有相同“a”和“b”計數的更新字串的 C++ 程式碼
假設我們有一個長度為偶數 n 的字串 S。S 僅包含兩種型別的字元:“a”和“b”。我們希望修改字串,使其長度的每個字首都有相同數量的字母“a”和“b”。為此,我們可以進行以下操作任意多次:選擇其字串中的某個位置,並用另一個字母替換該位置上的字母。返回更新後的字串。
因此,如果輸入為 S = "aabbbb",那麼輸出將為 "baabab"
步驟
要解決此問題,我們將遵循以下步驟 -
n := size of S for initialize i := 0, when i < n, update i := i + 2, do: if S[i] is same as S[i + 1], then: (increase ans by 1) S[i] := (if S[i] is same as 'a', then 'b', otherwise 'a') return S
示例
讓我們看看以下實現以獲得更好的理解 -
#include <bits/stdc++.h>
using namespace std;
string solve(string S){
int n = S.size(), ans = 0;
for (int i = 0; i < n; i += 2)
if (S[i] == S[i + 1]){
ans++;
S[i] = S[i] == 'a' ? 'b' : 'a';
}
return S;
}
int main(){
string S = "aabbbb";
cout << solve(S) << endl;
}輸入
"aabbbb"
輸出
baabab
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP