问题描述
给出一个字符串,仅考虑字母数字字符并忽略大小写,确定它是否是回文。
int Solution::ispalindrome(string A) {
vector<int> v1,v2;
int size = A.size(),a;
for(int i=0; i<size; i++){
if(isalpha(A[i]) || isdigit(A[i]))
{
a = (int)A[i];
v1.push_back(a);
}
if(isalpha(A[size-1-i]) || isdigit(A[size-1-i]))
{
a = (int)A[size-1-i];
v2.push_back(a);
}
}
if(v1==v2)
return 1;
return 0;
}
解决方法
它不会忽略大小写,因为比较v1 == v2
与原始字符串的大小写相同。
更改
v1.push_back(a);
到
v1.push_back(tolower(a));
v2
也是如此。
老实说,仅五分钟的测试就可以告诉您这一点,这并不是很难找到的错误。
编辑
自从我回答了这个问题以来,代码已更改为不再编译的代码。我真的不愿意回答不断变化的问题。
编辑
好吧,它又被改变了。至少它现在可以编译。