【leetcode分类下所有的题解均为作者本人经过权衡后挑选出的题解,在易读和可维护性上有优势
每题只有一个答案,避免掉了太繁琐的以及不实用的方案,所以不一定是最优解】
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: “Let’s take LeetCode contest”
输出: “s’teL ekat edoCteeL tsetnoc”
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
class Solution {
public String reverseWords(String s) {
StringBuilder res = new StringBuilder();
String[] strs = s.split(" ");
for(int i = 0; i < strs.length; i++){
if(strs[i].length() > 0){
res.append(new StringBuilder(strs[i]).reverse());
res.append(" ");
}
}
return res.toString().trim();
}
}
思路:
- 本题和翻转字符串里的单词类似,只不过每次还需要将每个单词的字母顺序都翻转
- 先将这个单词new出来,得到stringbuilder对象,再调用reverse方法,再append到res里