剑指 Offer 58 - I. 翻转单词顺序 发表于 2022-04-26 123456789101112131415161718192021222324252627282930313233class Solution { public String reverseWords(String s) { StringBuilder sb = new StringBuilder(); int j = s.length() - 1; while (j >= 0) { // skip whitespace while (j >= 0 && s.charAt(j) == ' ') { j--; } // j points to word or out of index if (j == -1) { break; // 注意此处跳出而不是返回空字符串,因为 sb 中可能有字符 } int i = j; while (i >= 0 && s.charAt(i) != ' ') { i--; } // i points to whitespace or out of index sb.append(s, i + 1, j + 1).append(' '); j = i - 1; } if (sb.length() == 0) { return ""; } else { return sb.deleteCharAt(sb.length() - 1).toString(); } }} Reference剑指 Offer 58 - I. 翻转单词顺序