这个字符串回文程序有什么问题?

问题描述

给出一个字符串,仅考虑字母数字字符并忽略大小写,确定它是否是回文。

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也是如此。

老实说,仅五分钟的测试就可以告诉您这一点,这并不是很难找到的错误。

编辑

自从我回答了这个问题以来,代码已更改为不再编译的代码。我真的不愿意回答不断变化的问题。

编辑

好吧,它又被改变了。至少它现在可以编译。