leetcode 557. 反轉字串中的單詞 III(Reverse Words in a String III)
阿新 • • 發佈:2018-12-10
給定一個字串,你需要反轉字串中每個單詞的字元順序,同時仍保留空格和單詞的初始順序。
示例 1:
輸入: "Let's take LeetCode contest" 輸出: "s'teL ekat edoCteeL tsetnoc"
注意:在字串中,每個單詞由單個空格分隔,並且字串中不會有任何額外的空格。
思路
先spilt分隔空格,呼叫自己寫的反轉函式,最後用空格連接回來,StringBuilder在多次修改字串時效率更高
class Solution { public String reverseWords(String s) { String[] word = s.split(" "); for(int i=0;i<word.length;i++) word[i] = reverse(word[i]); StringBuilder ans = new StringBuilder(word[0]); for(int i=1;i<word.length;i++) ans.append(" "+word[i]); return ans.toString(); } String reverse(String s) { char[] ch = s.toCharArray(); int n = ch.length; for(int i=0;i<n/2;i++) { char c = ch[i]; ch[i] = ch[n-1-i]; ch[n-1-i] = c; } return String.valueOf(ch); } }