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

C++の文で回文の単語を数える


英語の文章を含む文字列が与えられます。目標は、回文である文字列内の単語の数を見つけることです。回文の単語は、最初または最後から読み取ったときに同じアルファベット順を持つ単語です。文が「マダムは良いマラヤーラム語を話す」の場合、回文の単語の数は2です。(マダムとマラヤーラム語)

−単語には、大文字と小文字の両方のアルファベットを含めることができます。

例を挙げて理解しましょう。

入力 − str="お母さんとアンナは正午に出発しました";

出力 −文中の回文語の数は− 3

説明 −上記の文の回文の単語は−ママ、アンナ、正午です。 (アルファベットの場合に関係なく)

入力 −str=「私はレースカーゲームのレベル121にいます」

出力 −文中の回文語の数は− 4

説明 −上記の文の回文の単語は− I、レベル、121、Racecarです。 (アルファベットの場合に関係なく)

以下のプログラムで使用されているアプローチは次のとおりです

文中のスペース「」の後にある各単語を取得して、関数に渡します。この関数は、単語の文字を小文字に変換します。次に、単語の最初の文字からトラバースを開始し、word[0]とword[length-1]、word[1]とword[length-2]などを比較します。不一致が発生した場合はループを解除し、そうでない場合はtrueを返します。

  • 文を含む文字列配列str[]を取ります。

  • 関数check(string extra)は文字列を受け取り、文字列が回文の場合はtrueを返し、そうでない場合はfalseを返します。

  • 文字列extraの長さをlen=extra.lenght()として計算します。

  • (extra.begin()、extra.end()、extra.begin()、::tolower);

    を使用して、文字列全体を小文字に変換します。
  • 単語のインデックス0からインデックス

  • extra [i] ==extra[len-1]を比較してください。不一致が発生した場合はfalseを返します。それ以外の場合はtrueを返します。

  • 関数palindrome(string str、int length)は、文とその長さを受け取り、その中の回文の単語数を返します。

  • 初期カウントを0とします。

  • 一時的な文字列extra=””を使用して、個々の単語を選択して保存します。

  • forループを使用してインデックス0からiまで文のトラバースを開始します。

  • 一時的な文字temp=str.ar(i)を取ります。

  • tempがスペースでない場合は、それをextraに追加して単語を作成します。

  • tempがスペースでない場合、if(check(extra))は真の増分カウントを返します。

  • もう一度extra=””を作成します。

  • 最後のカウントには、回文の単語の総数が含まれます。

  • 結果としてカウントを返します。

#include <bits/stdc++.h>
using namespace std;
bool check(string extra){
   int len = extra.length();
   transform(extra.begin(), extra.end(), extra.begin(), ::tolower);
   for (int i = 0; i < len; i++,len--){
      if (extra.at(i) != extra.at(len - 1)){
         return false;
      }
   }
   return true;
}
int palindrome(string str, int length){
   int count = 0;
   string extra = "";
   for (int i = 0; i < length; i++){
      char temp = str.at(i);
      if (temp != ' '){
         extra = extra + temp;
      }
      else{
         if (check(extra))
            { count++; }
         extra = "";
      }
   }
   return count;
}
int main(){
   string str = "nitin wants nitin for his company named nitin after nitin";
   str = str + " ";
   int length = str.length();
   cout<<"Count of palindrome words in a sentence are: "<<palindrome(str, length)<<endl;
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Count of palindrome words in a sentence are: 4

  1. Pythonプログラムで文中の単語を数える

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列内の単語数を数えるために必要な文字列が与えられます アプローチ1-split()関数の使用 Split関数は、文字列を区切り文字としてスペースを使用して反復可能なリストに分割します。区切り文字を指定せずにsplit()関数を使用すると、デフォルトの区切り文字としてスペースが割り当てられます。 例 test_string = "Tutorials point is a learning platform" #original string print ("The orig

  2. 文中の単語を数えるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文が与えられたので、文の中の単語数を数える必要があります ここでは、2つのアプローチについて説明します- アプローチ1-split()関数の使用 例 test_string = "Tutorials point " res = len(test_string.split()) print ("The number of words in string are : " + str(res)) 出力 The number of words in st