GolangStudy/src/study/day9Interface/Practice/7.10.go

46 lines
833 B
Go

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
}