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