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などの他の言語で作成できます。この記事がお役に立てば幸いです。
-
C++を使用して文字列の部分文字列の数を見つける
この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &
-
C++を使用してN番目の偶数の長さの回文を検索します
C + +を使用したことがある場合は、回文数について聞いたことがあるはずです。したがって、このガイドでは、適切な例を使用して、「N番目の偶数長の回文」に関するすべてを説明します。回文数は、それらを逆にした後も同じままである数です。数字だけでなく、文字を逆にしてもスペルが変わらない単語。例- 数字={1,121,131,656,1221,1551} 言葉={saas、malayalam、level、mom} 複雑に見えますが、どのシステムでも非常に簡単に実行できます。それでは、回文について簡単に説明しましょう。 N番目の偶数の長さの回文数 11,22,33,44,55,66,77,88