557.Reverse Words in a String III

思路,直接遍历,翻转可以单独抽出来作为一个函数,最后返回的时候使用了系统自带的函数进行构造返回,这样才不会超时,如果像下面这样构造代码,将会在最后一个测试样例时超时。

		String result = "";
		for (char _ : chars) {
			result += _;
		}
		return result;

  

 

class Solution {
    public String reverseWords(String s) 
    {
        char[] chars = s.toCharArray();
        for (int start = 0, end = 0; end < s.length(); end++) {
            if (chars[end] == ' ') {
                for (int i1 = start, i2 = end - 1; i1 < i2; i1++, i2--) {
                    char temp = chars[i1];
                    chars[i1] = chars[i2];
                    chars[i2] = temp;

                }
                start = end + 1;
                continue;
            }
            if (end == s.length() - 1)
            // reverse(start,end)
            {
                for (int i1 = start, i2 = end; i1 < i2; i1++, i2--) {
                    char temp = chars[i1];
                    chars[i1] = chars[i2];
                    chars[i2] = temp;

                }
                start = end + 1;
            }
        }
        return new String(chars);
    }

    
}

posted @ 2017-09-19 16:54  深海芷兰  阅读(83)  评论(0)    收藏  举报