<LeetCode>125.Valid Palindrome 验证回文字符串 Tag:string
来源:互联网 发布:2级钢筋弯勾 算法 编辑:程序博客网 时间:2024/05/18 13:12
本文内容参考:
①Grandyang 的博客http://www.cnblogs.com/grandyang/p/4030114.html
② 九章算法的LeetCode参考答案 http://www.jiuzhang.com/solutions/valid-palindrome/
题目描述:
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,"A man, a plan, a canal: Panama"
is a palindrome."race a car"
is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
参考答案1:
建立两个指针或者下标记录变量,从两端相向遍历,直至相遇。在遍历过程中,若指针指向的字符非 "alphanumeric"(数字字符或字母),则对应指针继续前移或者后移;若两个指针都指向字母/数字,那么比较其是否相同,不同则return false,相同则移动两个指针,继续遍历过程。
bool isPalindrome(string s) { if(s.empty()) return true; int i = 0; int j = s.length() - 1; while(i<j) { if(!isAlphaNum(s[i])) i++; else if(!isAlphaNum(s[j])) j--; else if ((s[i] - 'a' + 32)%32 != (s[j] - 'a' + 32)%32) return false; else { i++; j--; } } return true; } bool isAlphaNum(char& s){ if(s>='a'&&s<='z') return true; if(s>='A'&&s<='Z') return true; if(s>='0'&&s<='9') return true; return false;}
参考答案2:
调用isalnum(int aCharOrNum)判断字符是否为字母或数字;调用transform(s.begin(), s.end(), s.begin(),::tolower)把字符串中的大写字母转为小写。
bool isPalindrome(string s) { if(s.empty()) return true; transform(s.begin(),s.end(),s.begin(),::tolower);//大写字母转为小写字母 int i = 0; int j = s.size() - 1; while(i < j) { if(!isalnum(s[i])) i++; else if(!isalnum(s[j])) j--; else if(s[i]!=s[j]) return false; else { i++; j--; } } return true; }
- <LeetCode>125.Valid Palindrome 验证回文字符串 Tag:string
- LeetCode Valid Palindrome(验证回文字符串)
- leetcode 125. Valid Palindrome | 回文string
- leetcode-125. Valid Palindrome(验证含有标点符号String是否为回文串)
- Leetcode 125. Valid Palindrome 回文验证 解题报告
- leetcode 刷题:Valid Palindrome(回文字符串)
- (LeetCode)Valid Palindrome --- 判断回文字符串
- 【字符串回文】Valid Palindrome
- Valid Palindrome(回文字符串)
- 125. Valid Palindrome (回文字符串判断)
- LeetCode[String]: Valid Palindrome
- LeetCode OJ 之 Valid Palindrome(回文字符串)
- leetcode 判断有效字符串是回文串Valid Palindrome
- leetcode:Valid Palindrome 合法回文
- LeetCode - Valid Palindrome (判断“回文”)
- LeetCode (16) Valid Palindrome (回文)
- Valid Palindrome 判断回文字符串
- leetcode125---Valid Palindrome(回文字符串)
- 邻接矩阵存储带权值的无向图
- opencv鼠标操作:选择提取任意区域
- 关键字
- plsql中执行SELECT current_date FROM dual,为什么获取的时间不正确?获取的不是我本地的时间
- tensorflow:图(Graph)的核心数据结构与通用函数(Utility function)
- <LeetCode>125.Valid Palindrome 验证回文字符串 Tag:string
- 黑马程序员 十二、反射机制
- ORACLE11g数据库字符集从ZHS16GBK转为UTF8
- 关于API
- 397. Integer Replacement
- Find Bottom Left Tree Value
- 实验 11 广播网络 OSPF 配置
- 十种排序算法总结(冒泡、插入、选择、希尔、归并、堆、快速,计数,桶,基数)
- webstorm支持es6与vue文件高亮