力扣541.反转字符串 II
2023-12-13 04:44:01
力扣541.反转字符串 II
示例
代码实现
class Solution {
public String reverseStr(String s, int k) {
char[] ans =s.toCharArray();
for(int i=0;i<ans.length;i+=2*k){
int begin = i;
int end = Math.min(ans.length-1,begin+k-1);
while(begin<end){
char temp =ans[begin];
ans[begin]=ans[end];
ans[end]=temp;
begin++;
end--;
}
}
return new String(ans);
}
}
总结收获
这道题目其实就是模拟,实现题目中规定的反转规则就可以了。
但是在思考过程中,走了一些弯路,也就是为了处理逻辑我尝试这样做过:每隔2k个字符的前k的字符,写了一堆逻辑代码或者再搞一个计数器,来统计2k,再统计前k个字符。
但是其实在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。因为要找的也就是每2 * k 区间的起点,这样写,程序会高效很多。
所以当需要固定规律一段一段去处理字符串的时候,要想想在在for循环的表达式上做做文章。
文章来源:https://blog.csdn.net/qq_45858191/article/details/134856172
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!