题解 | #字符串变形#
字符串变形
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-- } }