给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
char[] arr= s.toCharArray();//将String字符串转换为char数组
String res[]=s.split(" ");//将String字符串按“ ”分解为String数组(常见与分割单词)
class Solution {
public String reverseWords(String s) {
String res[]=s.split(" ");
int left,right,b;
String temp;
for(int a=0;a<res.length;a++){
String ress[]=res[a].split("");
left=0;
right =ress.length-1;
while(left<right){
temp=ress[left];
ress[left]=ress[right];
ress[right]=temp;
left++;
right--;
}
b=0;
res[a]="";
while(b<ress.length){
res[a]+=ress[b];
b++;
}
}
b=0;
s="";
while(b<res.length){
s+=res[b];
b++;
if(b<res.length)
s+=" ";
}
return s;
}
}
示例代码:
class Solution {
public String reverseWords(String s) {
char[] arr= s.toCharArray();
int len=arr.length;
int j=0;
for(int i=0;i<len-1;i++){
if(arr[i]==' '){
reverse(arr,i-1,j);
j=i+1;
}
}
reverse(arr,len-1,j);
return String.valueOf(arr);
}
public void reverse(char arr[],int i,int j){
while(i>j){
char temp= arr[i];
arr[i] = arr[j];
arr[j] = temp;
i--;
j++;
}
}
}