AcWing 77 翻轉單詞順序

2021-09-22 10:02:16 字數 882 閱讀 7119

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。

為簡單起見,標點符號和普通字母一樣處理。

例如輸入字串"i am a student.",則輸出"student. a am i"

樣例

輸入:"i am a student."

輸出:"student. a am i"

此題分為三個步驟。1. 先將字串中的多餘空格都去掉,將字串變為首尾無空格、單詞中間只有乙個空格的字串。這裡用乙個next指標,初始值為0。從前往後遍歷字串,當遇到的是字元時,將next指標處置為該字元,然後將next加1,然後判斷如果該字元的下乙個位置是空格的話,將next指的位置設為空格,然後將next加1。當遍歷結束後,先判斷next如果為0,那麼說明字串中沒有字元,所以返回空字串;如果不為0,那麼分為兩種情況:字串末尾是空格,那麼接下來擷取的字串長度為前next-1;如果字串末尾是字元,那麼接下來擷取的字串長度為前next。下一步是將字串前後翻轉,再下一步是從前往後遍歷字串,遇到空格或者結束則將前一部分的單詞翻轉。最後結束返回結果。

class solution 

}if(next == 0)

return "";

if(s.back() == ' ')

s = s.substr(0, next - 1);

else

s = s.substr(0, next);

reverse(s.begin(), s.end());

int start = 0;

for(int i = 0; i < s.size(); i++)

}return s;

}};

翻轉單詞順序

1.問題描述 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字幕一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 來自 劍指offer 2.分析 我們可以第一步翻轉句子中所有的字元。比如反轉 i am a stud...

翻轉單詞順序

首先將i am boy轉為yob ma i,str 0 與str len 1 交換順序,空間複雜度為o 1 然後yob ma i中每個單詞應用同樣的方法翻轉。function reverse str return strarr.join function reverseword str return...

翻轉單詞順序

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...