557. Reverse Words in a String I

2017-07-07  本文已影响0人  wtmxx

解法一

public class Solution {
    public String reverseWords(String s) {
        String[] strs=s.split(" ");
        String res="";
        for(int i=0;i<strs.length;i++){
            res+=new StringBuilder(strs[i]).reverse().toString();
            if(i!=strs.length-1)res+=" ";
        }
        return res;
    }
}

利用StringBuilder实现字符串翻转,在344中我字符串翻转是自己实现的,比该方法要快。

解法二

public class Solution {
    private void reverse(char[] a, int i, int j) {
        while(i<j) {
            char t = a[i]; a[i] = a[j]; a[j] = t;
            j--; i++;
        }
    }
    public String reverseWords(String s) {
        char[] a = s.toCharArray();
        int index = s.indexOf(' ');
        int start = 0;
        while(index != -1) {
            reverse(a, start, index - 1);
            start = index + 1;
            index = s.indexOf(' ', start);
        }
        reverse(a, start, s.length() - 1);
        return String.valueOf(a);
    }
}

自己实现的字符串翻转,比解法一快许多。

上一篇 下一篇

猜你喜欢

热点阅读