1009 說反話 20 分

2021-09-27 07:47:21 字數 874 閱讀 9817

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。

測試輸入包含乙個測試用例,在一行內給出總長度不超過 80 的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母(大小寫有區分)組成的字串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。

每個測試用例的輸出佔一行,輸出倒序後的句子。

hello world here i come
come i here world hello
首先這道題我的想法是採用rfind函式進行查詢,rfind查詢最後乙個空格的位置,然後輸出相應的單詞,但是在**過程中**量冗雜,寫起來有點問題。

演算法筆記思路:採用乙個二維陣列的形式,遇到空格row++,不遇到空格col++,但是在row++的過程中有需要注意的地方,如果是空格,說明乙個單詞結束,行加加,但是此時col要恢復為0.另外注意末尾是結束符'\0'.這點一定要注意str[row][col]='\0';一定要注意,不然會亂碼,二維陣列也不能開太小。

但是我提交的過程中pat是不可以的,一直顯示編譯錯誤,我想到可能是gets的鍋,因為gets是乙個很危險的輸入,沒有界限限制,所以很少用,查了一下文件pat是禁止使用gets的,我又換成了getline,但是因為自身的一些問題,還是失敗,最後終於成功,不能直接getline,可以採用cin.getline(str,90)的方法,直接使用getline是不行的。

#include#include#include#includeusing namespace std;

//單詞的順序顛倒輸出 查詢空格 逆序輸出

//思路好像不正確。

int main()

} cout《我覺得**很簡單,但是思維於我而言是沒有想到。

1009 說反話 (20 分)

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。測試輸入包含乙個測試用例,在一行內給出總長度不超過 80 的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母 大小寫有區分 組成的字串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。每個測試用例的輸出佔一行,輸出倒序後...

1009 說反話 (20 分)

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。輸入格式 測試輸入包含乙個測試用例,在一行內給出總長度不超過 80 的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母 大小寫有區分 組成的字串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。輸出格式 每個測試用例的輸...

1009 說反話 (20 分)

思路 滿足棧的先進後出的性質。在寫 之前,先回顧一下stl模板中棧和佇列的常用方法,鏈結如下 如下 include include includeusing namespace std int main n a.size for int i 0 i其實使用while cin s 會有死迴圈問題,一般...