package main import ( "fmt" "sort" "strings" ) func IsPalindrome(s sort.Interface) bool { for i, j := 0, s.Len()-1; i < j; i, j = i+1, j-1 { if s.Less(i, j) || s.Less(j, i) { return false } } return true } func StrToSlice(str string) []string { return strings.Split(str, "") } func IntToSlice(num int) []int { var s []int for num > 0 { s = append(s, num%10) num /= 10 } return s } func main() { var str = "abcdcba" // 将字符串转为[]string s := StrToSlice(str) fmt.Println(str, ":", IsPalindrome(sort.StringSlice(s))) // abcdcba : true var num = 123321 // 将数字转为[]int nums := IntToSlice(num) fmt.Println(num, ":", IsPalindrome(sort.IntSlice(nums))) // 123321 : true num = 123456 nums = IntToSlice(num) fmt.Println(num, ":", IsPalindrome(sort.IntSlice(nums))) // 123456 : false }