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