-
Notifications
You must be signed in to change notification settings - Fork 2
/
q0125.c
65 lines (62 loc) · 1.31 KB
/
q0125.c
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//
// q0125.c
// LeetCode
//
// Created by NowOrNever on 22/10/2019.
// Copyright © 2019 DoubleL. All rights reserved.
//
#include "q0125.h"
#include "../common.h"
//125. Valid Palindrome
//Easy
//656
//1926
//Favorite
//
//Share
//Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
//
//Note: For the purpose of this problem, we define empty string as valid palindrome.
//
//Example 1:
//
//Input: "A man, a plan, a canal: Panama"
//Output: true
//Example 2:
//
//Input: "race a car"
//Output: false
//Accepted
//389,766
//Submissions
//1,219,557
bool q125isPalindrome(char * s){
int len = 0;
int enough = (int)strlen(s) + 1;
char target[enough];
int diff = 'a' - 'A';
while (*s!='\0') {
if (*s >= 'a' && *s <= 'z') {
target[len++] = *s;
}else if(*s >= 'A' && *s <= 'Z'){
target[len++] = *s + diff;
}else if(*s >= '0' && *s <= '9'){
target[len++] = *s;
}
s++;
}
for (char *p = target,*pTail = target + len - 1 ; p < pTail;) {
if (*p != *pTail) {
return false;
}
p++;
pTail--;
}
return true;
}
int question125(){
char* s = "0P";
bool result = q125isPalindrome(s);
printf("result %d \n",result);
return 0;
}