2018-12-01 翻转字符串里的单词

题目:

翻转字符串里的单词

解法:

先反转字符串, 在反转单词, 即可达到目的.

public String reverseWords (String s){
    s = ' ' + s.trim();
    // 先反转字符串, 再反转单词即可.
    StringBuilder sb = new StringBuilder();
    // 从后往前遍历, 相当于反转字符串
    for (int i = s.length() - 1; i >= 0; i--) {
        if (s.charAt(i) != ' ') {
            // 检测到单词, 先搞定边界
            int start = i;
            while (start >= 0) {
                if (s.charAt(start) == ' ') {
                    break;
                }
                start--;
            }
            // 添加一个单词
            for (int j = start; j <= i; j++) {
                sb.append(s.charAt(j));
            }
            i = start;
        }
    }
    return sb.length() < 2 ? "" : sb.substring(1);
}

你可能感兴趣的:(2018-12-01 翻转字符串里的单词)