// 不适用于中文,因为一个中文占3个字节,转成 rune 字符类型进行判断 funcprocess(str string)bool { for i := 0; i < len(str); i++ { if i == len(str)/2 { // 终止条件 break } last := len(str) - i -1 if str[i] != str[last] { returnfalse } } returntrue }
// 适用于中文,英文,数字 funcprocess2(str string)bool { t := []rune(str) length := len(t) for i, _ := range t { if i == length/2 { // 终止条件 break } last := length - i -1 if t[i] != t[last] { returnfalse } } returntrue }
funcmain() { var str string fmt.Scanf("%s",&str) if process(str) { fmt.Printf("%s 是回文串", str) } else { fmt.Printf("%s 不是回文串", str) } }
v1.5.2