[Leetcode][JAVA] Reverse Words in a String

来源:互联网 发布:淘宝交易流程图 编辑:程序博客网 时间:2024/05/21 14:48
用JAVA或Python有简便方法:

这是我最开始AC的代码,用split()方法:

public String reverseWords(String s) {        String[] token = s.split(" ");        String re = "";        for(int i=token.length;i>0;i--)        {            if(token[i-1].compareTo("")!=0)                re = re + token[i-1] + " ";        }        return re.trim();    }

后来看discuss说是cheat,就改成:

public String reverseWords(String s) {        ArrayList<String> ls = new ArrayList<String>();        int i=0;        while(i<s.length())        {            if(!(s.charAt(i)==' '))            {                int j=i;                String temp = "";                while(j<s.length() && !(s.charAt(j)==' '))                {                    temp+=s.charAt(j);                    j++;                }                ls.add(temp);                i=j;            }            else                i++;        }                String re = "";        for(int j=ls.size()-1;j>=0;j--)        {            re = re + ls.get(j) + " ";        }        return re.equals("")?re:re.substring(0,re.length()-1);    }


遇到非空格就往下扫描,直到遇到空格或扫描至字符串末尾,则可以获得一个完整的词。
拿一个数据结构(这里用ArrayList)保存截取下来的词,然后从后往前输出。

最后需要把可能存在的末尾空格去掉。


0 0