多步翻转法
while 循环里套 while 的时候,记得把外层的判断条件也放到内层,否则容易越界。
public class Solution {
public void reverseWords(char[] s) {
int wordStart = 0;
int index = 0;
while(index < s.length){
while(index < s.length && s[index] != ' ') index++;
reverse(s, wordStart, index - 1);
index ++;
wordStart = index;
}
reverse(s, 0, s.length - 1);
}
private void reverse(char[] s, int start, int end){
while(start < end){
char temp = s[start];
s[start] = s[end];
s[end] = temp;
start ++;
end --;
}
}
}A1 a2 ..an b1 b2 ...bn -> a1b1a2b2...anbn
Last updated