美文网首页
557. 反转字符串中的单词 III

557. 反转字符串中的单词 III

作者: 编程小王子AAA | 来源:发表于2020-08-22 14:14 被阅读0次

    给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

    示例 1:

    输入: "Let's take LeetCode contest"
    输出: "s'teL ekat edoCteeL tsetnoc"
    注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。


    //方法一:
    class Solution {
        public String reverseWords(String s) {
            String words[] = s.split(" ");
            StringBuilder res=new StringBuilder();
            for (String word: words)
                res.append(new StringBuffer(word).reverse().toString() + " ");
            return res.toString().trim();
        }
    }
    //方法二:不使用系统函数,自己实现
    public class Solution {
        public String reverseWords(String s) {
            String words[] = split(s);
            StringBuilder res=new StringBuilder();
            for (String word: words)
                res.append(reverse(word) + " ");
            return res.toString().trim();
        }
        public String[] split(String s) {
            ArrayList < String > words = new ArrayList < > ();
            StringBuilder word = new StringBuilder();
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == ' ') {
                    words.add(word.toString());
                    word = new StringBuilder();
                } else
                    word.append( s.charAt(i));
            }
            words.add(word.toString());
            return words.toArray(new String[words.size()]);
        }
        public String reverse(String s) {
          StringBuilder res=new StringBuilder();
            for (int i = 0; i < s.length(); i++)
                res.insert(0,s.charAt(i));
            return res.toString();
        }
    }
    
    

    相关文章

      网友评论

          本文标题:557. 反转字符串中的单词 III

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