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

C++で文中の単語を並べ替える


異なる単語の文字列があり、その文字列は文と呼ばれ、これは次の形式であると仮定します-

  • 最初の文字は大文字です。

  • テキスト内の各単語は、1つのスペース文字で区切られます。

すべての単語が長さの昇順で再配置されるように、テキスト内の単語を再配置する必要があります。 2つの単語の長さが同じ場合は、元の順序で並べてください。

次に、これらのルールを適用して、最後に文字列を返します。

したがって、入力が「I to in cpp love code」のような場合、出力は「I to incpplovecode」になります

これを解決するには、次の手順に従います-

  • テキストの最初の文字を小文字にする

  • 配列を定義するx:=スペースを使用してテキストを分割した後にすべての単語を配置する

  • ペアの配列を定義する

  • 初期化i:=0の場合、i

    • sの最後に{x[i]、i}を挿入します

  • 長さが同じ場合は、インデックス値を使用して、長さに基づいて配列を並べ替えます

  • ret:=空の文字列

  • 初期化i:=0の場合、i

    • ret:=retはs[i]

      の最初の要素を連結します
    • iがsのサイズと等しくない場合、-

      • ret:=retは空白で連結します

  • rettocapitalの最初の文字を作成する

  • retを返す

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   vector <string> split(string& s, char delimiter){
      vector <string> tokens;
      string token;
      istringstream tokenStream(s);
      while(getline(tokenStream, token, delimiter)){
         tokens.push_back(token);
      }
      return tokens;
   }
   static bool cmp(pair <string, int>& a, pair <string, int>& b){
      if(a.first.size() != b.first.size()) return a.first.size() < b.first.size();
         return a.second < b.second;
   }
   static bool a(string& a, string& b){
      return a.size() < b.size();
   }
   string arrangeWords(string text) {
      text[0] += 'a' - 'A';
      vector<string> x = split(text, ' ');
      vector<pair<string, int> > s;
      for (int i = 0; i < x.size(); i++)
      s.push_back({ x[i], i });
      sort(s.begin(), s.end(), cmp);
      string ret = "";
      for (int i = 0; i < s.size(); i++) {
         ret += s[i].first;
         if (i != s.size() - 1)
            ret += ' ';
      }
      ret[0] += 'A' - 'a';
      return ret;
   }
};
main(){
   Solution ob;
   cout << (ob.arrangeWords("I love to code in cpp"));
}

入力

"I love to code in cpp"

出力

I to in cpp love code

  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