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