首页 > 代码库 > [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.
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.
思路:最一般的遍历+比较。注意题目要求和字母大小写问题。
时间复杂度O(n),空间复杂度O(1)
1 class Solution { 2 public: 3 bool isPalindrome(string s) { 4 if (s.empty()) return true; 5 6 vector<char> cvec; 7 for (string::size_type i = 0, j = s.size() - 1; i < j;) { 8 if (!isalnum(s[i])) { 9 ++i;10 continue;11 }12 if (!isalnum(s[j])) {13 --j;14 continue;15 }16 if (isdigit(s[i]) && s[i] != s[j]) {17 return false;18 }19 if (isalpha(s[i]) && (toupper(s[i]) != toupper(s[j]))) {20 return false;21 }22 ++i;23 --j;24 }25 26 27 return true;28 }29 };
[LeetCode] Valid Palindrome
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。