본문 바로가기

C

c++ leetcode 125 valid palindrome solution

code >>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Solution {
public:
    bool isPalindrome(string s) {
 
        int i = 0;
        int strlen = (int)s.size();
        int j = strlen - 1;
        if (j == 0)
            return true;
 
        while (j >= 0 && i < strlen)
        {
            while (((!isalpha(s[i])) && (!isdigit(s[i])) && (i < strlen)))
            {
                i++;
                if (i >= strlen)
                    break;
 
            }
 
            while (((!isalpha(s[j]))&&(!isdigit(s[j])) && (j >= 0)))
            {
                j--;
                if (j < 0)
                    break;
            }
            if ((i >= strlen) && (j < 0))
                return true;
 
            s[i] = tolower(s[i]);
            s[j] = tolower(s[j]);
            if (s[j] != s[i])
            {
                
                return false;
            }
                
            else
            {
                
                j--;
                i++;
            }
        }
 
        
        return true;
    }
};