2021-10-12:验证回文串。给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串 。输入: “A man, a plan
2021/10/12 23:18:08
本文主要是介绍2021-10-12:验证回文串。给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串 。输入: “A man, a plan,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2021-10-12:验证回文串。给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串 。输入: “A man, a plan, a canal: Panama”。输出: true。解释:“amanaplanacanalpanama” 是回文串。力扣125。
福大大 答案2021-10-12:
自然智慧即可。首尾指针比较,向中间移动。
时间复杂度:O(N)。
空间复杂度:O(1)。
代码用golang编写。代码如下:
package main import "fmt" func main() { ret := isPalindrome("abc ba") fmt.Println(ret) } // 忽略空格、忽略大小写 -> 是不是回文 // 数字不在忽略大小写的范围内 func isPalindrome(s string) bool { if len(s) == 0 { return true } str := []byte(s) L := 0 R := len(str) - 1 for L < R { // 英文(大小写) + 数字 if validChar(str[L]) && validChar(str[R]) { if !equal(str[L], str[R]) { return false } L++ R-- } else { L += twoSelectOne(validChar(str[L]), 0, 1) R -= twoSelectOne(validChar(str[R]), 0, 1) } } return true } func validChar(c byte) bool { return isLetter(c) || isNumber(c) } func equal(c1 byte, c2 byte) bool { if isNumber(c1) || isNumber(c2) { return c1 == c2 } // a A 32 // b B 32 // c C 32 return (c1 == c2) || (getMax(c1, c2)-getMin(c1, c2) == 32) } func isLetter(c byte) bool { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') } func isNumber(c byte) bool { return (c >= '0' && c <= '9') } func getMax(a byte, b byte) byte { if a > b { return a } else { return b } } func getMin(a byte, b byte) byte { if a > b { return a } else { return b } } func twoSelectOne(c bool, a int, b int) int { if c { return a } else { return b } }
执行结果如下:
左神java代码
这篇关于2021-10-12:验证回文串。给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串 。输入: “A man, a plan的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API