給定一個句子(只包含字母和空格), 將句子中的單詞位置反轉,單詞用空格分割, 單詞之間只有一個空格,前後沒有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
阿新 • • 發佈:2018-12-07
題目描述
給定一個句子(只包含字母和空格), 將句子中的單詞位置反轉,單詞用空格分割, 單詞之間只有一個空格,前後沒有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
輸入描述:
輸入資料有多組,每組佔一行,包含一個句子(句子長度小於1000個字元)
輸出描述:
對於每個測試示例,要求輸出句子中單詞反轉後形成的句子
示例1
輸入
hello xiao mi
輸出
mi xiao hello
/**
思路:
1.先將整個字串轉成字元陣列反轉得到 mi xiao hello
2.遍歷這個字元陣列,遇到空格或者到了尾部再做區域性反轉
*/
#include<iostream> #include<string> #include<algorithm> using namespace std; int main() { string s; while(getline(cin, s)) { reverse(s.begin(),s.end()); int l = 0,r = 0; while(r < s.length()) { while(r < s.length() && s[r] != ' ') ++r; reverse(s.begin() + l,s.begin() + r); l = ++r; } cout << s; } return 0; }