判断回文字符串-golang实现 | JianLinker Blog

判断回文字符串-golang实现

题目

输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package main

import "fmt"

// 不适用于中文,因为一个中文占3个字节,转成 rune 字符类型进行判断
func process(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] {
return false
}
}
return true
}

// 适用于中文,英文,数字
func process2(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] {
return false
}
}
return true
}

func main() {
var str string
fmt.Scanf("%s",&str)

if process(str) {
fmt.Printf("%s 是回文串", str)
} else {
fmt.Printf("%s 不是回文串", str)
}
}
JianLinker wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!