C++の文字列の右側にある大きい要素の数
文字列を指定すると、各文字の右側にある大きな要素の数を数える必要があります。例を見てみましょう。
入力
string = "abc"
出力
2 1 0
右側にあるよりも大きな要素が2つあります。
右側にbよりも大きい要素が1つあります。
右側にcよりも大きい要素が0個あります。
アルゴリズム
-
文字列を初期化します。
-
配列を初期化して、カウントを追跡します。
-
文字列を反復処理するために2つのループを記述します。
-
一度に1文字ずつ取り、それ以降のすべての文字と比較します。
-
現在の要素が次の要素よりも小さい場合は、カウント配列の対応する文字数をインクリメントします。
-
-
すべての文字の数を出力します。
実装
以下は、C++での上記のアルゴリズムの実装です
Implementation
Following is the implementation of the above algorithm in C++
#include <bits/stdc++.h> using namespace std; void countCharNextLargerElementsCount(string str) { int len = str.length(), count[len]; for (int i = 0; i < len; i++) { count[i] = 0; } for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { if (str[i] < str[j]) { count[i]++; } } } for (int i = 0; i < len; i++) { cout << count[i] << " "; } cout << endl; } int main() { string str = "abcdefgh"; countCharNextLargerElementsCount(str); return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
7 6 5 4 3 2 1 0
-
C++を使用して文字列の部分文字列の数を見つける
この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &
-
C++での二分木の右側面図
二分木があると仮定します。右側から木を見ると、そのいくつかの要素を見ることができます。それらの要素を表示する必要があります。したがって、ツリーが次のような場合- これを解決するには、次の手順に従います- dfsの支援メソッドを1つ作成します。これには、tree_node、回答を保持する配列、およびレベルが必要です。レベルは最初は0です。dfsは以下のように機能します- ノードがnullの場合は、戻ります level =回答配列の長さの場合、ノードの値をans配列に挿入します dfs(ノードの右側、ans、レベル+ 1) dfs(ノードの左側、ans、レベル+ 1) メイン関数か