C++で文字列内の単語を逆にする
単語が少ない文字列があるとします。文字列内の単語の位置を逆にする必要があります。つまり、文字列が「速い茶色のキツネが怠惰な犬を飛び越える」のようなものである場合
これを解決するには、次の手順に従います-
-
関数getString()を定義します。これは入力としてsを取り、これは-
として機能します。 -
i:=0、j:=sのサイズ– 1
-
s [i] =‘’およびi
-
j>=0かつs[j]=‘’の場合、jを1減らします
-
ret:=空の文字列
-
i <=jの場合、iを1増やします
-
retのサイズがゼロ以外で、retの最後の要素が‘’で、s [i]が‘’の場合、次の反復に進みます
-
ret:=ret + s [i]
-
-
reverseWords()と呼ばれる別のメソッドを定義します。これは入力としてsを取ります
-
j:=0
-
0からs– 1のサイズの範囲のIの場合、各ステップでi:=j
を設定します。-
s [i]が空白の場合、j:=i + 1
-
それ以外の場合
-
j +1
-
x:=iおよびy:=j
-
x
-
s[x]とs[y]を交換し、xを1増やし、yを1減らします
-
-
jを1増やします
-
-
-
メインの方法から、次のようにします-
-
文字列sを逆にします
-
reverseWords(s)
-
getString(s)を返す
例(C ++)
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; class Solution { public: string reverseWords(string s) { reverse(s.begin(), s.end()); reverseWordss(s); return getString(s); } string getString(string s){ int i = 0; int j = s.size() - 1; while(s[i] == ' ' && i < s.size()) i++; while(j >= 0 && s[j] == ' ') j--; string ret = ""; for(;i <= j; i++){ if(ret.size() && ret.back() == ' ' && s[i] == ' ')continue; ret += s[i]; } return ret; } void reverseWordss(string& s){ int j = 0; for(int i = 0; i < s.size() ;i = j){ if(s[i] == ' '){ j = i + 1; } else{ while(j + 1 < s.size() && s[j + 1] != ' ') j++; int x = i; int y = j; while(x < y){ swap(s[x], s[y]); x++; y--; } j++; } } } }; main(){ Solution ob; cout << (ob.reverseWords("The quick brown fox jumps over a lazy dog")); }
入力
"The quick brown fox jumps over a lazy dog"
出力
"dog lazy a over jumps fox brown quick The"
-
文字列内の単語を逆にするC#プログラム
次は文字列だとしましょう- Hello World 文字列を逆にすると、単語は-のように表示されます。 olleH dlroW 例 reverse()メソッドを使用し、次のコードを試して、文字列内の単語を逆にします。 using System; using System.Linq; class Demo { static void Main() { // original string string str = "Hello World"; &nbs
-
Pythonで特定の文字列の単語を逆にする
文字列が与えられ、文字列に存在するすべての単語を逆にすることが目標です。分割法と逆関数を使用して出力を実現できます。いくつかのサンプルテストケースを見てみましょう。 Input: string = "I am a python programmer" Output: programmer python a am I Input: string = "tutorialspoint is a educational website" Output: website educational a is tutorialspoint 以下の手順に従って、目