C++の文字列IIの逆単語
入力文字列が1つあるとすると、文字列を単語ごとに逆にする必要があります。
したがって、入力が["t"、 "h"、 "e"、 ""、 "m"、 "a"、 "n"、 ""、 "i"、 "s"、 ""、"のような場合n "、" l "、" c "、" e "]の場合、出力は[" n "、" l "、" c "、" e "、" "、" i "、" s "、"になります。 "、" m "、" a "、" n "、" "、" t "、" h "、" e "]
これを解決するには、次の手順に従います-
-
配列を反転します
-
j:=0
-
n:=sのサイズ
-
初期化i:=0の場合、i
-
s[i]が''と同じ場合、-
-
配列sをインデックスjからiに反転します
-
j:=i + 1
-
-
-
配列sをインデックスjからnに反転します
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; void print_vector(vector<auto< v){ cout << "["; for(int i = 0; i<v.size(); i++){ cout << v[i] << ", "; } cout << "]"<<endl; } class Solution { public: void reverseWords(vector<char>& s) { reverse(s.begin(), s.end()); int j = 0; int n = s.size(); for(int i = 0; i < n; i++){ if(s[i] == ' '){ reverse(s.begin() + j, s.begin() + i); j = i + 1; } } reverse(s.begin() + j, s.begin() + n); } }; main(){ Solution ob; vector<char> v = {'t','h','e',' ','m','a','n',' ','i','s',' ','n','i','c','e'}; ob.reverseWords(v); print_vector(v); }
入力
{'t','h','e',' ','m','a','n',' ','i','s',' ','n','i','c','e'}
出力
[n, i, c, e, , i, s, , m, a, n, , t, h, e, ]
-
文字列内の単語を逆にする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 以下の手順に従って、目