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

すべての面白い単語をC++で文字列に出力します


この問題では、文が与えられます。私たちのタスクは、おかしな単語である文からすべての文字列を印刷することです。

面白い言葉 条件に従う単語です-文字列の隣接する文字とその逆の文字列の絶対差は等しいです。

|string[0] - string[1]| = |revstring[0]-revstring[1]|

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

Input: string = ‘ABRS’
Output: Yes
Explanation:
Reverse string = SRBA
|A-B| = 1 = |S-R|
|B-R| = 16 = |R-B|
|B-A| = 1 = |R-S|

この問題を解決するには、指定された文から各文字列を抽出する必要があります。文字列が面白い文字列の場合は印刷します。

面白い文字列を確認してください −このために、文字列を両端から、つまり最初と最後からトラバースします。また、文字列の隣接する文字間の絶対差を比較し、差が同じでない場合はfalseを返します。

以下のコードはロジックを実装します-

#include <iostream>
#include<string.h>
using namespace std;
bool isFunny(string word){
   int i = 1;
   int j = word.length() - 2;
   for (int i = 0; i < word.length(); i++)
      word[i] = tolower(word[i]);
   while (i <= j){
      if (abs(word[i] -
         word[i - 1]) != abs(word[j] -
      word[j + 1]))
      return false;
      i++;
      j--;
   }
   return true;
}
void printFunnyWords(string str){
   str +=" ";
   string word = "";
   for (int i = 0; i < str.length(); i++){
      char ch = str[i];
      if (ch!=' ')
         word += ch;
      else{
         if (isFunny(word))
            cout<<word<<"\t";
         word = "";
      }
   }
}
int main(){
   string sentence = "hello, i love malayalam langauge";
   cout<<"All funny words of the string '"<<sentence<<"' are :\n";
   printFunnyWords(sentence);
   return 0;
}

出力

All funny words of the string 'hello, i love malayalam langauge' are :
i malayalam

  1. C++のCamelCaseNotationDictionaryのパターンに一致するすべての単語を印刷します

    この問題では、キャメルケース内の文字列の配列とパターンが与えられます。指定されたパターンに一致する配列のすべての文字列を出力する必要があります。 文字列の配列 要素が文字列データ型である配列です。 キャメルケース はプログラミングでの命名の一般的な方法です。このように、新しい単語の最初の文字は大文字で始まり、残りはすべて小文字です。 例 − iLoveProgramming 問題 −指定されたパターンに一致するすべての文字列を検索します。 例 − Input : “TutorialsPoint” , “ProgrammersPoint&rdqu

  2. 特定の文字列のすべてのサブ文字列をC++で出力するプログラム

    このチュートリアルでは、特定の文字列のすべての部分文字列を出力するプログラムについて説明します。 このために、文字列または文字の配列が提供されます。私たちのタスクは、その特定の文字列のすべてのサブ文字列を出力することです。 例 #include<bits/stdc++.h> using namespace std; //printing all the substrings void print_substr(char str[], int n){    for (int len = 1; len <= n; len++){