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

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

  1. C++を使用して文字列から特定の単語を削除する

    この記事では、特定の文字列から特定の単語を削除する問題を解決します。例- Input : str = “remove a given word ”, word = “ remove ” Output : “ a given word ” Input : str = “ god is everywhere ”, word = “ is ” Output : “ god everywhere ” 解決策を見つけるためのアプローチ たとえば、単純なアプロ

  2. C++を使用して文字列の部分文字列の数を見つける

    この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &