牛客小白月赛31 I题

非对称之美

https://ac.nowcoder.com/acm/contest/10746/I

牛客小白月赛31 非对称之美
题目链接
搞不懂为什么全相同的时候为什么输出0,我一直以为应该输出1
如果字符串中有多个不相同的字符,那么最长非对称字符串要么为len,要么为len-1(len为字符串长度)
如果整个字符串为回文串,结果为len-1,否则为len。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
string s[110];
int main () {
    string str;
    cin>>str;
    int len = str.length();
    map<char,int>mp;
    int id=0;
    for(int i=0;i<len;i++) {
        if(mp[str[i]]) {
        }else {
            mp[str[i]] = (++id);
        }
    }
    if(id == 1) {
        printf("0\n");
    }
    else {
        int pd=0;
        for(int j=0; j<len/2;j++) {
            if(str[j] != str[len-(j+1)]) {
                pd=1; break;
            }
        }
        if(pd)
            printf("%d\n",len);
        else printf("%d\n",len-1);
    }
    return 0;
}
全部评论
因为一个字符如:x本身符合对称的定义啊
1 回复 分享
发布于 2021-01-26 18:33

相关推荐

11-11 14:21
西京学院 C++
无敌混子大王:首先一点,不管学校层次怎么样,教育经历放在第一页靠上位置,第一页看不到教育经历,hr基本直接扔掉了
点赞 评论 收藏
分享
威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务