classSolution {publicStringreverseWords(String s) {StringBuilder sb =newStringBuilder();int endIndex =-1;for (int i =s.length()-1; i>=0; i--){if(s.charAt(i)!=' '&& endIndex==-1){ endIndex = i;// key: do not change i in case if this is a single character word i++; }elseif(s.charAt(i)!=' '&& endIndex>=0&& (i==0||s.charAt(i-1)==' ')){sb.append(s.substring(i, endIndex+1)+' '); endIndex=-1; } }sb.setLength(sb.length()-1);returnsb.toString(); }}