cocobear9  
一枚普通的zisuer(lll¬ω¬),努力每天多学一点点

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

示例 1:

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

链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii
介绍一下StringBuffer中的

 

public static String reverse1(String str)
{
  return new StringBuffer(str).reverse().toString();
}

SringBuffer类和String一样,也用来代表字符串,相比String, StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。当遇到插入、删除等字符串操作时,可以考虑用StringBuffer。

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

作者:LeetCode
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/solution/fan-zhuan-zi-fu-chuan-zhong-de-dan-ci-iii-by-leetc/
Me:
public static String reverseWords(String s) {
        String [] str  = s.split(" ");
        char [] ch = new char[s.length()];
        int k=0;
        for(int i=0;i<str.length;i++) {
            for(int j=str[i].length()-1;j>=0;j--) {
                ch[k++]=str[i].charAt(j);
                
            }
            if(i!=str.length-1) {
                ch[k++] = ' ';
            }
            
        }
        return new String(ch);

    }

 

posted on 2020-06-10 11:11  cocobear9  阅读(151)  评论(0)    收藏  举报