557. 反转字符串中的单词 III
难度简单 274
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:“Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”
提示:
- 在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
public String reverseWords(String s) {
StringBuffer ret = new StringBuffer();
int length = s.length();
int i = 0;
while (i < length) {
int start = i;
while (i < length && s.charAt(i) != ' ') {
i++;
}
for (int p = start; p < i; p++) {
ret.append(s.charAt(start + i - 1 - p));
}
while (i < length && s.charAt(i) == ' ') {
i++;
ret.append(' ');
}
}
return ret.toString();
}
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/solution/fan-zhuan-zi-fu-chuan-zhong-de-dan-ci-iii-by-lee-2/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
557. 反转字符串中的单词 III | |||||
---|---|---|---|---|---|
Let’s take LeetCode contest | i | start | p | ret | start + i - 1 - p |
0->5 | 0 | 0–>4 | s’teL | ||
6–>10 | 6 | 6–>8 | s’teL | 6+10-1-6=9 | |
6+10-1-7=8 | |||||
6+10-1-8=7 | |||||
s’teL ekat | 6+10-1-9=6 |