leetcode 186: Reverse Words in a String II

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;}}}

,上帝助自助者。

leetcode 186: Reverse Words in a String II

相关文章:

你感兴趣的文章:

标签云: