344. 反转字符串 - 力扣(LeetCode)
简单的进行交换即可
func reverseString(s []byte) {
for i, j := 0, len(s)-1; i < j; {
s[i], s[j] = s[j], s[i]
i++
j--
}
}
541. 反转字符串 II - 力扣(LeetCode)
和上一道题差不太多
func reverseStr(s string, k int) string {
s1 := []byte(s)
for i := 0; i < len(s1); i = i+k*2 {
for j, t := i, i+k-1; j < t; j, t = j+1, t-1 {
if t > len(s1)-1 {
t = len(s1)-1
}
s1[j],s1[t] = s1[t],s1[j]
}
}
return string(s1)
}
LCR 122. 路径加密 - 力扣(LeetCode)
简单替换一下即可
func pathEncryption(path string) string {
p := []byte(path)
for i := 0; i < len(p); i++ {
if p[i] == '.' {
p[i] = ' '
}
}
return string(p)
}
151. 反转字符串中的单词 - 力扣(LeetCode)
计算好单词数量,预分配空间,再进行填充
func reverseWords(s string) string {
var strs [][]byte
var temp []byte
for i := 0; i < len(s); i++ {
if s[i] != ' ' {
temp = append(temp, s[i])
} else if len(temp) != 0 {
strs = append(strs, temp)
temp = make([]byte, 0)
}
}
if len(temp) != 0 {
strs = append(strs, temp)
}
var ans []byte
for i := len(strs)-1; i >= 0; i-- {
ans = append(ans, strs[i]...)
ans = append(ans, ' ')
}
ans = ans[:len(ans)-1]
return string(ans)
}
LCR 182. 动态口令 - 力扣(LeetCode)
func reverseLeftWords(s string, n int) string {
c := []byte(s)
c = append(c, c[:n]...)
c = c[n:]
return string(c)
}
今天是简单的一天