标签:
Total Accepted: 421 Total Submissions: 1404Given an input string, reverse the string word by word. A word is defined as a sequence of non-space characters.
The input string does not contain leading or trailing spaces and the words are always separated by a single space.
For example,
Given s = "the sky is blue",
return "blue is sky the".
Could you do it in-place without allocating extra space?
[思路]
反转整个字符串, 再反转每个单词即可
[注意]
None
[DODE]
public class Solution {
//the sky is blue
public void reverseWords(char[] s) {
//input check
if(s.length<=1) return;
swap(s, 0, s.length-1);
int i=0, j=1;
while(j<s.length) {
while(j<s.length && s[j]!=' ') {
++j;
}
swap(s, i, j-1);
i = j+1;
j = i+1;
}
}
private void swap(char[] s, int i, int j) {
while(i<j) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
++i;
--j;
}
}
}leetcode 186: Reverse Words in a String II
标签:
原文地址:http://blog.csdn.net/xudli/article/details/43666783