LeetCode第557题,难度是简单,一个月三周以前刷的题目。突然意识到,我真的已经又是一个月没有写过LeetCode了,又变懒了,勤奋果然大都是暂时的。
原题地址:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/
题目描述:
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
想法很简单:
一共遍历两次数组?对split不够熟悉,所以不敢确定。
第二种方法:
直接从尾部遍历字符串,然后把没有到空格之前的所有字符都放到Stack里面,有空格就从stack里面取出来。
中文官网题解:
https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/solution/
个人题解:
class Solution {
public String reverseWords(String s) {
String[] strings = s.split(" ");
StringBuilder stringBuilder = new StringBuilder(s.length());
for (int i = 0; i < strings.length; i++) {
char[] chs = strings[i].toCharArray();
for (int j = chs.length - 1; j >= 0; j--) {
stringBuilder.append(chs[j]);
}
if (i != strings.length - 1) {
stringBuilder.append(' ');
}
}
return stringBuilder.toString();
}
}
结果:
又回归了正常水平,也就是50%的水平。