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

C++を使用した2つのゼロ間の要素の削除


この記事では、ゼロと1の文字のみを含む特定の文字列から2つのゼロの間の要素を削除する方法について説明します。最後の文字列には、0で囲まれた文字「1」を含めないでください。例-

Input : string = “110010”
Output : “11000”
Explanation: 1 is found between two zeros at the 4th index.

Input : string = “0010”
Output : “000”
Explanation : 1 is found between two zeros at the 2nd index.

解決策を見つけるためのアプローチ

単純なアプローチを適用できます。つまり、ループを使用して文字列をトラバースし、前の要素と次の要素がゼロかどうかを確認します。はいの場合、そのインデックスはゼロではありません。その後、長さを格納する新しい長さで変数を更新し、その文字列を出力します。

#include <bits/stdc++.h>
using namespace std;

int main () {
   string str = "110010";
   int length = str.length();
   for (int i = 1; i < length - 1; i++) {
      // checking the element between two zeros
      if ((str.at (i - 1) == '0' && str.at (i + 1) == '0')) {
         // deleting the element
         // if it is found between two 0's
         str.erase (i, 1);

         i--;
         if (i > 0 && str.at (i - 1) == '0')
            i--;

            // updating the length of the string after removing the element.
         length = str.length ();
      }
   }
   cout << "String after removing elements between the two zeros: " << str;
   return 0;
}

出力

String after removing elements between the two zeros: 1100

コードを理解する

  • ループは、インデックス1から(長さ-1)までの文字列を通過するために使用されます。
  • i番目のインデックスの前後のインデックスが「0」に等しいかどうかを確認します。
  • 「1」の場合、その文字をそのインデックスから削除します。
  • 長さ変数を新しい変数で更新します。
  • ループが終了した後、更新された文字列を最後に出力します。

結論

この記事では、「0」と「1」の文字を含む文字列から2つのゼロの間の要素を削除する方法について説明しました。同じことを解決するC++プログラムもあります。このプログラムは、C、java、pythonなどの他の言語で作成できます。この記事がお役に立てば幸いです。


  1. C++を使用して文字列の部分文字列の数を見つける

    この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &

  2. C++を使用してN番目の偶数の長さの回文を検索します

    C + +を使用したことがある場合は、回文数について聞いたことがあるはずです。したがって、このガイドでは、適切な例を使用して、「N番目の偶数長の回文」に関するすべてを説明します。回文数は、それらを逆にした後も同じままである数です。数字だけでなく、文字を逆にしてもスペルが変わらない単語。例- 数字={1,121,131,656,1221,1551} 言葉={saas、malayalam、level、mom} 複雑に見えますが、どのシステムでも非常に簡単に実行できます。それでは、回文について簡単に説明しましょう。 N番目の偶数の長さの回文数 11,22,33,44,55,66,77,88