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 --;
}
}
}
本站原创文章皆遵循“署名—非商业性使用—相同方式共享 4.0 协议 (CC BY-NC-SA 4.0)”。共享、演绎请保留以下标注:
原文作者:Jake Tao,来源:「LeetCode – 557. Reverse Words in a String III」