344.反转字符串
思路:双指针一个从后一个从前遍历,然后依次调换他们指向的元素。
func reverseString(s []byte) {l := 0r := len(s) - 1for l < r{tmp := s[l]s[l] = s[r]s[r] = tmpr--l++} }
541. 反转字符串II
func reverseStr(s string, k int) string {for index := 0;index < len(s);index++{if index % (2*k) == 0{start := indexend := index + k -1if end > len(s) - 1{end = len(s) - 1}s = reverseString(s,start,end)}}return s } // reverseString 反转字符串s中从start到end(包含)的部分,并返回反转后的字符串 func reverseString(s string, start int, end int) string {// 将字符串转换为[]rune以支持Unicode字符(如中文、 emoji等)runes := []rune(s)l, r := start, endfor l < r {// 交换左右指针指向的字符runes[l], runes[r] = runes[r], runes[l]l++r--}// 将[]rune转换回字符串并返回return string(runes) }
翻转后k个字符,然后每移动了2k字符翻转一次,小心边界条件
541. 路径加密
扫描。然后换成空格
func pathEncryption(path string) string {runes := []rune(path)for i,i2 := range runes{if i2 == '.'{runes[i] = ' '}}return string(runes)}