练习3.1.2 编写一个函数判断两个字符串是否同文异构,也就是他们都含有相同的字符但排列顺序不同(两种实现方法)
import (
"strings"
)
func string1(s1, s2 string) bool {
if len(s1) != len(s2) {
return false
}
var num int
for i := len(s1); i >= 0; i-- {
for j := len(s2); j >= 0; j-- {
if s1[i] == s2[j] {
num++
}
}
}
if num == (len(s1) - 1) {
return true
}
return false
}
func string2(s1, s2 string) bool {
if len(s1) != len(s2) {
return false
}
for i := len(s1); i >= 0; i-- {
if strings.LastIndex(s2, string(s1[i])) == -1 {
return false
}
}
return true
}
练习4.3: 重写reverse,使用数组指针作为参数而不是slice(见reverse1)
package main
import "fmt"
func main() {
sls := []string{"1", "2", "3"}
a := &sls
sls = reverse1(a)
fmt.Println(sl