C++を使用した入力文字列の最大出現文字
この問題では、小文字の入力文字列が与えられます。私たちの仕事はm 入力文字列の最大出現文字 。
同じ出現頻度の複数の値の場合、辞書式に小さい値を印刷する必要があります。
問題を理解するために例を見てみましょう
入力
string = “programming”
出力
g
ソリューションアプローチ
問題の解決策を見つけるには、読み取った文字列を並べ替えてから文字列をトラバースして、文字列内で最大の出現数を持つ文字を見つける必要があります。この問題を克服するために、ハッシュ法(ハッシュテーブル法)を使用します。個々の文字をトラバースして文字の配列にハッシュすることをハッシュと呼びます。
通常、ハッシュ配列のサイズは256に割り当てられます。ただし、文字列に0〜127の範囲の文字しか含まれていない場合は、サイズ128のハッシュテーブルを使用して、文字列に応じてハッシュテーブルのサイズを割り当て解除できます。
アルゴリズム
-
入力文字列を読み取ります。
-
文字列内の最大出現文字を計算する関数を作成します。
-
個々の文字の数を保持する配列を作成し、配列を0として初期化します。
-
入力文字列から文字数配列を作成します。
-
最大カウントと結果を初期化します。
-
文字列をトラバースして、互いの数を維持します。
-
最後に、最大数の文字を見つけて印刷します。
例
ソリューションの動作を説明するプログラム
#include <bits/stdc++.h> using namespace std; char findMaxOccuringChar(char str[]){ int freq[26] = { 0 }; int maxFreq = -1; char maxFreqChar; int len = strlen(str); for (int i = 0; i < len; i++) freq[str[i] - 'a']++; for (int i = 0; i < 26; i++) if (maxFreq < freq[i]) { maxFreq = freq[i]; maxFreqChar = (char)(i + 'a'); } return maxFreqChar; } int main(){ char str[] = "programming"; cout<<"Maximum occurring character of input string is "<<findMaxOccuringChar(str); return 0; }
出力
Maximum occurring character of input string is g
-
C++を使用して文字列から特定の単語を削除する
この記事では、特定の文字列から特定の単語を削除する問題を解決します。例- Input : str = “remove a given word ”, word = “ remove ” Output : “ a given word ” Input : str = “ god is everywhere ”, word = “ is ” Output : “ god everywhere ” 解決策を見つけるためのアプローチ たとえば、単純なアプロ
-
C++を使用して文字列の部分文字列の数を見つける
この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &