Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
Example 1:
Input: "Let's take LeetCode contest" Output: "s'teL ekat edoCteeL tsetnoc"
Note: In the string, each word is separated by single space and there will not be any extra space in the string.
public class Solution {
public String reverseWords(String s) {
char[] c = s.toCharArray();
int pos = 0;
for(int i=0;i<c.length;i++){
if(c[i] == ' '){
rev(c,pos,i-1);
pos = i+1;
}
}
rev(c,pos,c.length-1);
return new String(c);
}
public void rev(char[] c, int start,int end){
while(start<end){
char tmp = c[start];
c[start] = c[end];
c[end] = tmp;
start ++;
end --;
}
}
}
微信扫一扫
支付宝扫一扫