发布时间:2022-10-24编辑:lianpenglin阅读(1151)
回文字符串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文字符串。(来自百度百科)
举个例子,比如以下字符串就为回文字符串:
abccba
12321
判断回文字符串的方法很多,本文使用for循环来判断字符串是否是回文字符串,
使用 for 循环判断的方式和上一种实现思路类似,是将字符串分隔成两半,先对比第一位和最后一位是否相等,如果相等进行下一次循环,每次给首位+1 和末尾-1,然后再进行判断,在整个循环过程中如果有一次不相等就里面返回 false,如果整个循环能顺利执行完则说明是回文字符串,直接返回 true 即可,实现代码如下:
代码如下:
func isHuiWen(str string) bool { r := []rune(str) for i := 0; i < len(r)-1; i++ { if string(r[i]) != string(r[len(r)-1-i]) { return false } } return true } func main() { fmt.Println(isHuiWen("abcba")) fmt.Println(isHuiWen("abcbad")) fmt.Println(isHuiWen("我和我")) fmt.Println(isHuiWen("abcdeffedcba")) }
输出结果:
true
false
true
true
实现回文字符串判断有很多种方法,在平时面试中,我推荐使用for循环来实现,因为它更原始、依赖的东西也很少,时间复杂度为O(n)。
如果对你有用打赏一下吧!
下一篇: 没有了