class Solution { public void reverseString(char[] s) { int left=0; int right=s.length-1; while(left<right) { char tmp=s[left]; s[left]=s[right]; s[right]=tmp; left++; right--; } } } |
挺简单的
class Solution { public String reverseStr(String s, int k) { StringBuffer res=new StringBuffer(); int start = 0; int len=s.length(); while(start<len) { StringBuffer temp = new StringBuffer(); int firstk = (start+k)>len?len:(start+k); int sencondk = (start+2*k)>len?len:(start+2*k); temp.append(s.substring(start,firstk)); res.append(temp.reverse()); if(firstk<sencondk){ res.append(s.substring(firstk,sencondk)); } start+=2*k; } return res.toString(); } } |
这道题对于我来说,挺难的,因为里面用到了很多函数,这些我都不熟悉,以及,怎么处理反转的范围这里,我也没有一个比较好的想法
这道题目我直接使用了replace函数,就不放代码了,很简单,感觉这道题目是上一道题目的简单版
class Solution { public String reverseWords(String s) { StringBuffer res = new StringBuffer(); s=s.trim(); int start; int len=s.length(); int end=len-1; while(end>=0) { if(s.charAt(end)!=' ') { start=end; while(s.charAt(start)!=' '&&start>0) { start--; } start=s.charAt(start)==' '?start+1:start; res.append(s.substring(start,end+1)); if(start!=0) res.append(" "); end=start-1; }else { end--; } } return res.toString(); } } |
感觉还不错,没有很难,就是截取的头尾需要细心一点
我之前做过,思路有点难以想到,想到就很简单