Total Accepted: 421 Total Submissions: 1404
Given 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 bluepublic void reverseWords(char[] s) {//input checkif(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;}}}
,上帝助自助者。