这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » valid-palindrome

共1条 1/1 1 跳转至

valid-palindrome

高工
2018-01-26 13:07:25     打赏

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.\



题意:给定一个字符串,确定它是否是回文,只考虑字母数字字符;


思路:从头遍历和从尾部遍历同时进行;

跳过不是字符的;


注意题意,忽略大小写,即a==A



[cpp] view plain copy
  1. class Solution  

  2. {  

  3. public:  

  4.     bool isPalindrome(string s)  

  5.     {  

  6.         if (s.empty())  

  7.         {  

  8.             return true;  

  9.         }  

  10.         int start = 0;  

  11.         int end = s.size() - 1;  

  12.         while (start<end)  

  13.         {  

  14.             //忽略非字符和非数字的  

  15.             while (!((s[start] >= 'a' && s[start] <= 'z')  

  16.                 || (s[start] >= 'A' && s[start] <= 'Z')  

  17.                 || (s[start] >= '0' && s[start] <= '9'))  

  18.                 && start<s.size())  

  19.             {  

  20.                 start++;  

  21.             }  

  22.   

  23.             while (!((s[end] >= 'a' && s[end] <= 'z')  

  24.                 || (s[end] >= 'A' && s[end] <= 'Z')  

  25.                 || (s[end] >= '0' && s[end] <= '9'))  

  26.                 && end >= 0)  

  27.             {  

  28.                 end--;  

  29.             }  

  30.   

  31.             if (s[start] == s[end] || s[start] + 32 == s[end] || s[start] - 32 == s[end])  

  32.             {  

  33.                 start++;  

  34.                 end--;  

  35.             }  

  36.             else  

  37.             {  

  38.                 return false;  

  39.             }  

  40.         }  

  41.         return true;  

  42.     }  

  43. }; 




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]