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

バイナリ文字列の「01」または「10」を削除して、C ++の「01」または「10」から解放しますか?


最初に最初の文字列を宣言してその長さを計算し、それらをdeleteSubstr(str、length)関数に渡します。

string str = "01010110011";
int length = str.length();
cout <<"Count of substring deletion"<< deleteSubstr(str, length);

deleteSubstr(string str、int length)関数内で、forループは、Iがlength未満になるまで実行され、0と1が検出されると、それぞれcount_0変数とcount_1変数をインクリメントします。次に、この関数はcount_0とcount_1の最小値を返します。

int deleteSubstr(string str, int length){
   int count_0 = 0, count_1 = 0;
   for (int i = 0; i < length; i++) {
      if (str[i] == '0')
         count_0++;
      else
         count_1++;
   }
   return min(count_0, count_1);
}

バイナリ文字列の「01」または「10」を削除して「01」または「10」から解放する次の実装を見てみましょう-

#include <iostream>
using namespace std;
int deleteSubstr(string str, int length){
   int count_0 = 0, count_1 = 0;
   for (int i = 0; i < length; i++) {
      if (str[i] == '0')
         count_0++;
      else
         count_1++;
   }
   return min(count_0, count_1);
}
int main(){
   string str = "01010110011";
   int length = str.length();
   cout <<"Count of substring deletion "<< deleteSubstr(str, length);
   return 0;
}

出力

上記のコードは次の出力を生成します-

Count of substring deletion 5

  1. C++で文字列から二分木を構築する

    括弧と整数で構成される文字列があるとします。その文字列から二分木を構築する必要があります。入力全体が二分木を表します。これは、0、1、または2組の括弧が後に続く整数を保持します。整数はルートの値を表し、括弧のペアには同じ構造の子二分木が含まれます。 したがって、入力が「4(2(3)(1))(6(5))」の場合、出力は[3,2,1,4,5,6](順序付き走査)になります これを解決するには、次の手順に従います- 関数solve()を定義します。これには、s、idx、が必要です。 =sのサイズの場合、- nullを返す num:=空の文字列 while(

  2. C++での二分探索

    二分探索は、配列を半分にして半分ずつ検索することにより、並べ替えられた配列から必要な要素を見つける方法です。 このメソッドは、アレイ全体から開始することによって実行されます。それからそれは半分になります。必要なデータ値が配列の中央にある要素よりも大きい場合は、配列の上半分が考慮されます。それ以外の場合は、下半分が考慮されます。これは、必要なデータ値が取得されるか、残りの配列が空になるまで継続的に実行されます。 C++での二分探索を示すプログラムを以下に示します。 例 #include using namespace std; int binarySearch(int arr[], int