輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串"i am a student. 「,則輸出"student. a am i」。
輸入: "the sky is blue"
輸出: "blue is sky the"
輸入: " hello world! "
輸出: "world! hello"
解釋: 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
輸入: "a good example"
輸出: "example good a"
解釋: 如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。
從前往後遍歷,每次遍歷先去除空格,然後儲存中間的字元,逆轉之後儲存到結果中。
效果不是很好。。應該是逆轉花太多時間了,~~稍微改進一下。~~改進之後發現更差了。。
不應該再開乙個stringbuilder了,直接用substring,維護乙個單詞開始和結束的位置。
效果稍微好一點
看了下題解,方法和我的差不多。。
字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串"abcdefg"和數字2,該函式將返回左旋轉兩位得到的結果"cdefgab"。
輸入: s = "abcdefg", k = 2
輸出: "cdefgab"
輸入: s = "lrloseumgh", k = 6
輸出: "umghlrlose"
最簡單的方法應該就是轉為乙個字元陣列,再用三次reverse方法就ok了。和leetcode的某一題是一樣的。
效果一般
獲取字串 s[n:] 切片和 s[:n] 切片,使用 「+」 運算子拼接並返回即可。
class
solution
}
class
solution
}
劍指 Offer 58 I 翻轉單詞順序
題目 leetcode上面這道題與書上有些許不同,leetcode還考慮句子首尾和末尾有空格的情況,以及單詞之間存在多個空格。思路1 class solution return res.tostring trim 思路2 先剔除字串首尾的空格,然後利用split 函式,根據空格劃分,返回乙個stri...
劍指 Offer 58 I 翻轉單詞順序
輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...
劍指 Offer 58 I 翻轉單詞順序
輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...