獲得具有相同“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

更新於:15-3-2022

132 次瀏覽

開啟你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.