classSolution{public:voidreverseWords(vector<char>&s){reverse(begin(s),end(s));// Reverse the whole stringreverseWords(s,s.size());// Reverse each word}private:voidreverseWords(vector<char>&s,intn){inti=0;intj=0;while(i<n){while(i<j||i<n&&s[i]==' ')// Skip spaces++i;while(j<i||j<n&&s[j]!=' ')// Skip non spaces++j;reverse(begin(s)+i,begin(s)+j);// Reverse the word}}};
classSolution{publicvoidreverseWords(char[]s){reverse(s,0,s.length-1);// Reverse the whole stringreverseWords(s,s.length);// Reverse each word}privatevoidreverse(char[]s,intl,intr){while(l<r){finalcharc=s[l];s[l++]=s[r];s[r--]=c;}}privatevoidreverseWords(char[]s,intn){inti=0;intj=0;while(i<n){while(i<j||i<n&&s[i]==' ')// Skip spaces++i;while(j<i||j<n&&s[j]!=' ')// Skip non spaces++j;reverse(s,i,j-1);// Reverse the word}}}
classSolution:defreverseWords(self,s:List[str])->None:defreverse(l:int,r:int)->None:whilel<r:s[l],s[r]=s[r],s[l]l+=1r-=1defreverseWords(n:int)->None:i=0j=0whilei<n:whilei<jor(i<nands[i]==' '):# Skip spacesi+=1whilej<ior(j<nands[j]!=' '):# Skip non spacesj+=1reverse(i,j-1)# Reverse the wordreverse(0,len(s)-1)# Reverse the whole stringreverseWords(len(s))# Reverse each word