问题标题: 酷町堂:3990 最长回文字符串

1
0
已解决
张恩泽
张恩泽
高级天翼
高级天翼

3990   最长回文字符串经验值:1200

题目描述 Description

现在给出一个字符串,如果该字符串顺着和倒着是完全一样的,即字符串开头与结尾相对位置的字符对应都相同,那么该字符串是完全回文字符串,否则的话我们也可以求出其最长回文长度。
最长回文长度指的是开头和结尾有多少对字符对应匹配(不区分大小写)。
比如:
aSIA 的最长回文长度是1,因为开头和结尾只有1对字符a和A匹配。
AbscBA 的最长回文长度是2,因为有2对字符:A和A,b和B对应匹配。

现在输入一个字符串,请你判断:如果它是完全回文字符串,输出“Y”;否则输出“N”以及该字符串的最长回文长度。

输入描述 Input Description

第一行,输入一个字符串(仅包含字母)

输出描述 Output Description

如果是完全回文字符串,输出“Y”;否则输出“N”和该字符串的最长回文长度

样例输入 Sample Input

【样例输入1】 IasSAI 【样例输入2】 IIAsii

样例输出 Sample Output

【样例输出1】 Y 【样例输出2】 N 2


0
已采纳
李鑫羽
李鑫羽
初级光能
初级光能

核心代码:

for(int i=0;i<s.size();i++){
        if(s[i]>='A'&&s[i]<='Z'){
            s[i]+=32;
        }
    }
    if(prime_huwu(s)){
        cout<<"Y";
    }
    else{
        cout<<"N"<<" "<<cnt;
    } 

函数

bool prime_huwu(string s){
    int i=0,j=s.size()-1;
    while(i<=j){
        if(s[i]!=s[j]){
            return 0;
        }
        i++;
        j--;
        cnt++;
    }
    return 1;
}

我要回答