C++ 代码获取具有相同 'a' 和 'b' 计数的更新字符串

假设我们有一个偶数长度为 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

以上是 C++ 代码获取具有相同 'a' 和 'b' 计数的更新字符串 的全部内容, 来源链接: utcz.com/z/297434.html

回到顶部