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 |
