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

バイナリ文字列にC++で同じものが連続して含まれているかどうかを確認します


バイナリ文字列があるとします。私たちのタスクは、文字列に同じ文字が連続しているかどうかを確認することです。同じ文字が連続している場合、それは無効です。それ以外の場合は有効です。その場合、文字列「101010」は有効ですが、「10111010」は無効です。

この問題を解決するために、2つの連続する文字が同じ場合は左から右にトラバースし、それ以外の場合はfalseを返します。

#include <iostream>
#include <algorithm>
using namespace std;
bool isConsecutiveSame(string str){
   int len = str.length();
   for(int i = 0; i<len - 1; i++){
      if(str[i] == str[i + 1])
      return false;
   }
   return true;
}
int main() {
   string str = "101010";
   if(isConsecutiveSame(str))
      cout << "No consecutive same characters";
   else
      cout << "Consecutive same characters found";
}

出力

No consecutive same characters

  1. バイナリツリーがC++でレベルごとにソートされているかどうかを確認します

    ここでは、二分木がレベルごとにソートされているかどうかを確認する方法を説明します。レベルごとにソートされた二分木は次のようになります- 各レベルでは、ノードは左から右に並べ替えられ、各レイヤーには前のレベルよりも高い値が含まれています。 レベル順序トラバーサルを実行することでこの問題を解決し、現在のレベルの最小要素と最大要素を追跡できます。別の変数prev_maxを使用して、前のレベルの最大値を保持します。次に、現在のレベルの最小値と前のレベルの最大値prev_maxを比較します。 min値がprev_maxより大きい場合、ツリーは現在のレベルまでレベルごとに並べ替えられます。次に、

  2. バイナリツリーがC++でレベルごとにソートされているかどうかを確認します

    ここでは、二分木がレベルごとにソートされているかどうかを確認する方法を説明します。レベルごとにソートされた二分木は次のようになります- 各レベルでは、ノードは左から右に並べ替えられ、各レイヤーには前のレベルよりも高い値が含まれています。 レベル順序トラバーサルを実行することでこの問題を解決し、現在のレベルの最小要素と最大要素を追跡できます。別の変数prev_maxを使用して、前のレベルの最大値を保持します。次に、現在のレベルの最小値と前のレベルの最大値prev_maxを比較します。 min値がprev_maxより大きい場合、ツリーは現在のレベルまでレベルごとに並べ替えられます。次に、