大小寫不計,只看字母跟數字
如果完全沒有符合字母跟數字的也算是YES
(為什麼要這樣定義為什麼~~~搖作者肩膀)
題意不難可是一堆corner case
(是說這跟special case 有什麼不一樣嗎XD)
覺得瑣碎 QQ
Valid Palindrome
bool isAlphanumeric(char *pL)
{
if (pL[0]<48 || (pL[0]>57 && pL[0] <65) || (pL[0]>90 && pL[0]<97) || (pL[0] >122))
return false;
return true;
}
bool isPalindrome(char* s) {
if(s==NULL)
return true;
char *pL=s;
char *pR = s+strlen(s) -1;
while(pL<pR)
{
if (!isAlphanumeric(pL))
pL++;
else if (!isAlphanumeric(pR))
pR--;
else if (strncasecmp(pL++,pR--,1)!=0)
return false;
}
return true;
}
20240525 更新
奇怪我的腦袋是漿糊Orz
bool isPalindrome(char* s) {
int len = strlen(s);
int l=0; int r=len -1;
while (l<r)
{
if (s[l]>=65 && s[l] <=90)
s[l] += 32;
if (!((s[l] >=97 && s[l] <=122) || (s[l] >=48 && s[l] <=57)))
{
l++;
continue;
}
if (s[r]>=65 && s[r] <=90)
s[r] += 32;
if (!((s[r] >=97 && s[r] <=122) || (s[r] >=48 && s[r] <=57)))
{
r--;
continue;
}
if(s[l]!= s[r])
return false;
l++;
r--;
}
return true;
}
沒有留言:
張貼留言