541. 反转字符串 II
就是加了点规则,遵守规则就行了
这道题目其实也是模拟,实现题目中规定的反转规则就可以了。
所以当需要固定规律一段一段去处理字符串的时候,要想想在在for循环的表达式上做做文章。
代码1
代码2
代码2的一些解释
时间复杂度:O(n)
空间复杂度:O(n),因为JAVA字符串是不可修改的,所以需要使用O(n)的空间将字符串临时转换为可修改的数据结构,(例如char数组)
代码1和2的区别:
1,代码1 使用continue,可以直接结束本次循环,进入下一次循环
2,字符数组转字符串,方式不同
说明:
1,边界值的确定方法,举个实际例子,
最好用的例子:0,1,2,3,4
2,关于下面的那个i<j,反过来想,如果i不小于j,那么就是等于呗,等于,肯定不会换了呀
3,一般调用的库函数,对于数据的边界都是左闭右开原则,当然自己实现, 可以自己定义规则
4,代码,只要能模拟出来就行,不用太讲究代码是如何写出来的
参考链接:
字符串操作进阶! | LeetCode:541. 反转字符串II
【彤哥来刷题啦】模拟 & 100%,简单题如何做到代码优雅!
Java 位运算符(操作符) &、&&、|、||、^、<<
时空复杂度参考