首页 > 代码库 > 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.
说明:
1)注意两点:a、判断满足条件的字符 b、大写变小写(本题认为不区分大小写)
2)字符串为空则true
实现:
1 class Solution { 2 public: 3 bool isPalindrome(string s) { 4 if(s.empty()) return true; 5 int len=strlen(s.c_str()); 6 int i=0; 7 int j=0; 8 for (;i<len;i++) 9 {10 if (isChar(s[i]))//去其他符合,若有大写则大写变小写11 {12 s[i] = tolower(s[i]);//库函数13 s[j++]=s[i];14 }15 }16 s[j]=‘\0‘;17 if (s[0]==‘\0‘) return true;18 int len2=strlen(s.c_str());19 i=0;20 while(i<=len2-1-i) //判断是否回文21 {22 if(s[i]!=s[len2-1-i]) return false;23 i++;24 }25 return true; 26 }27 private:28 bool isChar(char t)//判断是否满足条件字符29 {30 if ((‘a‘ <= t&&t<=‘z‘)||(‘A‘ <= t&&t<=‘Z‘)||(‘0‘ <= t&&t<=‘9‘))31 {32 return true;33 }34 else35 return false; 36 }37 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。