代码如下
func reverseString(s []byte) {
left := 0
right := len(s)-1
for left < right {
s[left],s[right] = s[right],s[left]
left++
right--
}
}
541 反转字符串二
代码如下
func reverseStr(s string, k int) string {
ss := []byte(s)
for i := 0 ; i < len(s) ; i += 2 *k { //思路如下,如果i+k小于整个数组长度就反转前k个字符,否则就反转剩余的字符,因为不管是2k个字符还是大于k小于2k个字符,都需要反转前k个字符,如果i+k大于数组长度了,说明剩余字符数小于k个,那么需要全部反转
if i + k <= len(s) {
reverse(ss[i:i+k])
}else {
reverse(ss[i:len(s)])
}
}
return string(ss)
}
func reverse(ss []byte)[]byte {
left := 0
right := len(ss)-1
for left < right {
ss[left],ss[right] = ss[right],ss[left]
left++
right--
}
return ss
}