网站 切图,四川建设局网站,wordpress 安卓 源码分析,西安seo关键词排名优化给定一个字符串 s 和一个整数 k#xff0c;从字符串开头算起#xff0c;每计数至 2k 个字符#xff0c;就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个#xff0c;则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个#xff0c;则反转前 k 个字符…给定一个字符串 s 和一个整数 k从字符串开头算起每计数至 2k 个字符就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个则反转前 k 个字符其余字符保持原样。
解答
class Solution {public String reverseStr(String s, int k) {StringBuffer r new StringBuffer();int len s.length();for(int i 0; i len; i i2*k){int left len - i;StringBuffer t new StringBuffer();if(left k){ //如果剩余字符少于 k 个则将剩余字符全部反转。t.append(s.substring(i, len));r.append(t.reverse());}else if( (left2*k) (leftk) ){ //如果剩余字符小于 2k 但大于或等于 k 个则反转前 k 个字符其余字符保持原样。 t.append(s.substring(i, ik));r.append(t.reverse());r.append(s.substring(ik, len));}else if(i%(2*k) 0){t.append(s.substring(i, ik));r.append(t.reverse());r.append(s.substring(ik, i2*k));}}return r.toString();}
}