C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で特定の操作を実行した後の最後の文字列


このチュートリアルでは、次の問題を解決します。

文字aとbのみを含む文字列が与えられた場合、私たちのタスクはサブ文字列 abを削除することです。 文字列から。そして残りの文字列を印刷します。

ここでは、問題を解決するためのアイデアは非常に簡単です。 aとbのみの文字列はすべて、最後にaまたはbのいずれかに縮小されます。

問題を解決するための手順を見てみましょう。

  • 文字列を初期化します。

  • aとbの2つのカウンター変数を初期化します。

  • 指定された文字列を繰り返し処理します。

    • aとbを数える

  • aとbの周波数から最大値を見つけます。

  • 2つの違いを印刷します。

コードを見てみましょう。

#include <bits/stdc++.h>
using namespace std;
string getTheUpdatedString(string str) {
   int n = str.length();
   int a_count = 0, b_count = 0;
   for (int i = 0; i < n; i++) {
      if (str[i] == 'a') {
         a_count++;
      }
      else {
         b_count++;
      }
   }
   string updated_string = "";
   if (a_count > b_count) {
      for (int i = 0; i < a_count - b_count; i++) {
         updated_string += "a";
      }
   }
   else {
      for (int i = 0; i < b_count - a_count; i++) {
         updated_string += "b";
      }
   }
   return updated_string;
}
int main() {
   string str = "ababababaaa";
   cout << getTheUpdatedString(str) << endl;
}

出力

上記のコードを実行すると、次の結果が得られます。

aaa

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. 特定の文字列がC++の回文の回転であるかどうかを確認します

    ここでは、特定の回転後の1つのストリングが回文であることがわかります。回文は、両方向で同じ文字列です。それがAAAADのようなものである場合、弦の回転は回文です。これは直接の回文ではありませんが、そのローテーションAADAAは回文です。 文字列が回文で回転しているかどうかを確認するには、最初にこれが回文であるかどうかを確認し、その後、1文字ずつ回転させてから、もう一度確認します。この確認はn回実行されます。ここでnは文字数です。 例 #include <iostream> #include <string> #include <algorithm> usi

  2. Pythonで特定のスタック操作を実行して最終的な答えを確認するプログラム

    opsという文字列のリストがあり、各要素が以下のようなこれらの操作のいずれかであるとします- スタックにプッシュされる負でない整数値 「POP」を使用して、スタックから最上位の要素を削除します 「DUP」を使用すると、最上位の要素がスタックに再度挿入され、複製されます。 +を使用して、上位2つの要素をポップアウトし、合計値をプッシュします -を使用して、上位2つの要素をポップアウトし、(top element-topのすぐ下の要素)の結果をプッシュします したがって、これらの操作をすべて適用した後、スタックの最上位のmot要素を見つける必要があります。一部の操作が無効な場合は、-1を