力扣每日一题2022.2.23

1.讲解

917. 仅仅反转字母

根据题意使用双指针模拟下标,i从左端开始,j从右端开始,如果两则都是字母这就交换位置,如果一端不是字母,则向中靠近,直到i>=j时循环结束,则可获得答案

2.代码

class Solution {

public String reverseOnlyLetters(String s) {

char[] ans=s.toCharArray();

char t;

for (int i=0,j=s.length()-1;i<j;)

{

while(i<j&&!Character.isLetter(ans[i])) i++;//不是字母向中靠齐

while(i<j&&!Character.isLetter(ans[j])) j--;//不是字母向中靠齐

t=ans[i];//开始交换

ans[i++]=ans[j];

ans[j--]=t;

}

return String.valueOf(ans);

 

}

}

 

 

 

posted @ 2022-02-23 09:37  yun_you  阅读(38)  评论(0)    收藏  举报