ホームページ >バックエンド開発 >C++ >C++ を使用して 2 つのゼロ間の要素を削除する

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

WBOY
WBOY転載
2023-08-29 09:53:051343ブラウズ

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

この記事では、0 と 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.

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

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

Example

#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) == &#39;0&#39; && str.at (i + 1) == &#39;0&#39;)) {
         // deleting the element
         // if it is found between two 0&#39;s
         str.erase (i, 1);

         i--;
         if (i > 0 && str.at (i - 1) == &#39;0&#39;)
            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 などの他の言語で作成できます。この記事がお役に立てば幸いです。

以上がC++ を使用して 2 つのゼロ間の要素を削除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。