讨论/《数组和字符串》 - 翻转字符串里的单词/
《数组和字符串》 - 翻转字符串里的单词

嗯?你管能用正则解决的问题叫事儿?

class Solution {
    public String reverseWords(String s) {
        String[] arr = s.trim().split("\\s+");
        StringBuilder strBld = new StringBuilder();
        for (int idx = arr.length - 1; idx >= 0; idx--) {
            strBld.append(arr[idx]);
            if (idx != 0) strBld.append(" ");
        }
        return strBld.toString();
    }
}

image.png
那,不用正则能不能做,没辣么麻烦过滤一下空格截取一下就好了。

class Solution {
    public String reverseWords(String s) {
    StringBuilder strBld = new StringBuilder();
        boolean flag = false;
        int idx = s.length() - 1;
        while (true) {
            while (idx >= 0 && s.charAt(idx) == ' ') idx--;
            if (idx < 0) break;
            int end = idx+1;
            while (idx >= 0 && s.charAt(idx) != ' ') idx--;
            int start = idx + 1;
            if(flag){
                strBld.append(" ");
            }else{
                 flag=true;
            }
            strBld.append(s.substring(start,end));
        }
        return strBld.toString();
    }
}

image.png

展开全部 18 讨论