344. 反转字符串
分别定义一个左指针,和右指针,while循环退出的条件是,当左右指针相遇时即可退出while循环
class Solution {
public void reverseString(char[] s) {
int i = 0, j = s.length - 1;
while (i < j) {
char t = s[i];
s[i] = s[j];
s[j] = t;
i++;
j--;
}
}
}
557. 反转字符串中的单词 III
注意处理边界值
class Solution {
public String reverseWords(String s) {
StringBuffer sb = new StringBuffer();
char[] chars = s.toCharArray();
for (int i = 0, j = 0; j < chars.length; j++) {
if (chars[j] == ' ') {
int k = j - 1;
int x = i;
while (x <= k) {
char t = chars[x];
chars[x] = chars[k];
chars[k] = t;
x++;
k--;
}
i = j + 1;
}
if (j == chars.length - 1) {
int k = chars.length - 1;
int x = i;
while (x <= k) {
char t = chars[x];
chars[x] = chars[k];
chars[k] = t;
x++;
k--;
}
}
}
for (char aChar : chars) {
sb.append(aChar);
}
return sb.toString();
}
}