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

C++で文字列の最初に繰り返される単語を検索します


この問題では、コンマで区切られた単語で構成される文字列strです。私たちのタスクは、文字列内の最初に繰り返される単語を見つけることです。 。

文字列内で繰り返される最初の単語「2つのスペースの間の文字列」を見つける必要があります。

問題を理解するために例を見てみましょう

Input : str = "C program are easy to program"
Output : program

ソリューションアプローチ

この問題の簡単な解決策は、ハッシュマップデータ構造を使用することです。最初に繰り返される単語を見つけるために、各単語とその数(文字列に出現した回数)をハッシュマップに保存します。このため、現在の単語が存在するかどうかをチェックし続けます。

次に、ハッシュマップに複数のオカレンスカウントを持つ最初の作品を印刷します。

ソリューションの動作を説明するプログラム

#include <bits/stdc++.h>
using namespace std;
string findFirstRepeatWord(string str){
   istringstream iss(str);
   string word;
   unordered_map<string, int> wordCountMap;
   while (getline(iss, word, ' ')) {
      if (wordCountMap.find(word) != wordCountMap.end())
         wordCountMap[word] ++;
      else
         wordCountMap.insert(make_pair(word, 1));
   }
   istringstream iss2(str);
   while (getline(iss2, word, ' ')) {
      int count = wordCountMap[word];
      if (count > 1) {
         return word;
      }
   }
   return "NoRepetition";
}
int main(){
   string str = "C program are easy to program";
   string repeatedWord = findFirstRepeatWord(str);
   if (repeatedWord != "NoRepetition")
      cout<<"The first repeated word is '"<<repeatedWord<<"'";
   else
      cout<<"No word is Repeated in the string";
   return 0;
}

出力

The first repeated word is 'program'

このプログラムは、タスクを簡単にするために多くの組み込み関数を使用します。


  1. C++で最初のN個の自然数の平均を求めます

    この問題では、数nが与えられます。私たちの仕事は、最初のN個の自然数の平均を見つけることです。 。 数値の平均 すべての数値の合計を数値の総数で割ったものとして定義されます。 N個の自然数の平均は、最初のN個の自然数の合計をNで割ったものとして定義されます。 問題を理解するために例を見てみましょう Input : N = 23 Output : 12 説明 − 1 + 2 + 3 + ... + 22 + 23 = 276 276 / 23 = 12 ソリューションアプローチ 数の平均を見つけるために、平均の式を使用します。 平均=合計(N)/ N 平均=(1 + 2 +

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

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