美文网首页
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