首页 > 代码库 > 【leetcode】Valid Palindrome
【leetcode】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.
空串是回文串。
分析:首尾开始比较,不是字母的跳过,都是字母且相同继续比较,否则就是返回false。
bool alphanumeric (char c) { return (c >= 'a' && c <= 'z' || c >= '0' && c <= '9'); } void tolower(string &s) { for(int i = 0; i < s.size(); ++i) if(s[i] <= 'Z' && s[i] >= 'A') s[i] += 32; } bool isPalindrome(string s) { if(s.size() <= 1) return true; int i = 0; int j = s.size() - 1; tolower(s); while(i <= j) { if(alphanumeric(s[i]) && alphanumeric(s[j]) && s[i] == s[j]) {++i; --j;} else if(!alphanumeric(s[i])) ++i; else if(!alphanumeric(s[j])) --j; else return false; } return true; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。