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.

C++:
01 bool isChar(char c)
02 {
03     if((c>=‘a’)&&(c<=‘z’))
04         return true;
05     if((c>=‘A’)&&(c<=‘Z’))
06         return true;
07     return false;
08 }
09 bool isDigit(char c)
10 {
11     return ((c>=‘0’)&&(c<=‘9’));
12 }
13 bool areEqual(char a, char b)
14 {
15     if(a==b)
16         return true;
17     if(isChar(a)&&(isChar(b)))
18     {
19         if((a‘a’+‘A’==b)||(a+‘a’‘A’==b))
20             return true;
21     }
22     return false;
23 }
24 
25 class Solution {
26 public:
27     bool isPalindrome(string s) {
28         // Start typing your C/C++ solution below
29         // DO NOT write int main() function
30         int n=s.size();
31         int p=0;
32         int q=n1;
33         bool flag=false;
34         while(p<q)
35         {
36             if(!flag)
37             {
38                 if((isChar(s[p]))||(isDigit(s[p])))
39                 {
40                     flag=true;
41                 }
42                 else
43                 {
44                     p++;
45                 }
46             }
47             if(flag)
48             {
49                 if((isChar(s[q]))||(isDigit(s[q])))
50                 {
51                     if(!areEqual(s[p],s[q]))
52                         return false;
53                     else
54                     {
55                         p++;
56                         q;
57                     }
58                     flag=false;
59                 }
60                 else
61                 {
62                     q;
63                 }
64             }
65         }
66         return true;
67     }
68 };
Advertisements
This entry was posted in String. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s