美文网首页
557. Reverse Words in a String I

557. Reverse Words in a String I

作者: wtmxx | 来源:发表于2017-07-07 20:19 被阅读0次

解法一

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

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

相关文章

网友评论

      本文标题:557. Reverse Words in a String I

      本文链接:https://www.haomeiwen.com/subject/zyurhxtx.html