题解 | #字符串变形#
字符串变形
https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
package main
import "fmt"
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param n int整型
* @return string字符串
*/
func trans(s string, n int) string {
if n == 0 {
}
var r = []rune(s)
// 全部翻转
reserve(r, 0, n-1)
// 大小写互换
for i := 0; i < n; i++ {
if r[i] == ' ' {
continue
}
if r[i] >= 'A' && r[i] <= 'Z' {
r[i] = r[i] - 'A' + 'a'
} else {
r[i] = r[i] - 'a' + 'A'
}
}
// 单个单词翻转
var begin,end int
for i:=0; i < n; i ++ {
if r[i] == ' ' {
end = i - 1
if end > begin {
reserve(r, begin, end)
}
begin = i+1
}else if i == n-1 {
end = i
if end > begin {
reserve(r, begin, end)
}
}
continue
}
return string(r)
}
func reserve(s []rune, start, end int) {
for start < end {
temp := s[start]
s[start] = s[end]
s[end] = temp
start++
end--
}
}

查看23道真题和解析
