LeetCode-151-翻轉字符串里的單詞

題目描述:給你一個字符串 s ,逐個翻轉字符串中的所有 單詞 。
請你返回一個翻轉 s 中單詞順序并用單個空格相連的字符串。
說明:
輸入字符串 s 可以在前面、后面或者單詞間包含多余的空格。
翻轉后單詞間應當僅用一個空格分隔。
翻轉后的字符串中不應包含額外的空格。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/reverse-words-in-a-string/ ??
著作權歸領扣網(wǎng)絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。
解法一:字符串遍歷
首先,如果字符串s是空串或者只由空格組成,則直接返回空串。
否則,首先將s去掉前后的空格,遍歷字符串s,聲明一個單詞列表words用來記錄遍歷到的單詞,一個臨時辦理lastChar記錄上一個字符,lastChar初始化為空格,遍歷過程如下:
如果當前字符和上一個字符都是空格,則跳過處理下一個字符;
如果當前字符是空格而上一個字符不是空格,說明上一個字符是當前單詞的結束符號,將該單詞添加到單詞列表中;
如果當前字符不是空格而上一個字符是空格,說明當前字符是單詞的開始符號;
如果當前字符和上一個字符都不是空格,說明當前單詞并未結束。
遍歷結束后,將當前最后一個單詞添加到單詞列表words中,然后使用
Collections.reverse
方法將單詞列表words逆序排列,最后使用String.join(" ", words)
方法將單詞用空格分開連接起來并返回。
【每日寄語】 做人要不斷的往前走,難免會跌倒但是要爬起來再跑,再跌倒再爬起來,做人就是這樣的。
標簽: