给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: “Let’s take LeetCode contest”
输出: “s’teL ekat edoCteeL tsetnoc”
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
解法
先建立一个反转字符的函数,然后将字符串转换成字符组,然后遍历。当出现空格的时候,反转之前出现的字符(必须要先定义一个开始的int),最后完成遍历之后再反转最后空格之后的字符,因为最后一个字符不会是空格;
return 一个新的string,将字符组放进去。ok
class Solution {
public String reverseWords(String s) {
int begin = 0;
char[] schar = s.toCharArray();
for(int i=0;i<schar.length;i++){
if(schar[i]==' '){
swap(schar,begin,i-1);
begin=i+1;
}
}
swap(schar,begin,schar.length-1);
return new String(schar);
}
public void swap(char[] schar,int a ,int b){
while(a<b){
char temp = schar[a];
schar[a]=schar[b];
schar[b]=temp;
a++;
b--;
}
}
}