1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class Solution {
public String reverseWords(String s) { StringBuilder ans = new StringBuilder(); int begin = 0, end = 0; int len = s.length(); while (begin < len) { int[] sub = findSubString(s, begin); begin = sub[0]; end = sub[1]; ans.insert(0, s.substring(begin, end) + " "); begin = end; } return ans.toString().trim(); } private int[] findSubString(String s, int begin) { while (begin < s.length() && s.charAt(begin) == ' ') { begin++; } int end = begin; while (end < s.length() && s.charAt(end) != ' ') { end++; } return new int[]{begin, end}; } }
|