首页 > 代码库 > 25. Valid Palindrome
25. Valid Palindrome
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.
思想:简单的从两端来逐个读字符,判断是否相等。(36ms)
inline char getLowerChar(string &s, int id) { if((s[id] >= ‘a‘ && s[id] <= ‘z‘) || (s[id] >= ‘0‘ && s[id] <= ‘9‘)) return s[id]; else if(s[id] >= ‘A‘ && s[id] <= ‘Z‘) return s[id] + 32; else return 0;}inline char getFirstChar(string &s, int& l) { while(l < s.size()) { char ch = getLowerChar(s, l); if(ch) return ch; ++l; } return 0;}inline char getLastChar(string &s, int& h) { while(h >= 0) { char ch = getLowerChar(s, h); if(ch) return ch; --h; } return 0;}class Solution {public: bool isPalindrome(string s) { int l = 0, h = s.size()-1; while(l <= h) { if(getFirstChar(s, l) != getLastChar(s, h)) return false; ++l, --h; } return true; }};
25. Valid Palindrome
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。