BaconToastSAOtNOCAb

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 222 总提交人数: 230
Special Judge

题目描述

$\text{BaconToast}$ 遇到了一个神奇的山洞,当他对着山洞大喊一句话,山洞会传来相反的回声,且如果音量小,回声大;如果音量大,回声小。

给出一个只包含字母和数字的字符串,请你判断这个字符串是否符合要求。

输入

输入包含多组数据(不超过 $10$ 组),每组数据输入一行字符串,只含字母和数字,字符串长度不超过 $10^3$ 。

输出

判断该字符串是否满足以下要求:

  • 该字符串是一个广义的回文串(指的是如果将所有字母转换为小写,他是一个回文串;回文串中,相对的两个字母,不同时为大写或小写)。

如果满足要求,输出 yes;否则输出 n0。每组数据之间通过换行隔开。

输入样例

BaconToastSAOtNOCAb
debug20244202GUBED
IloveBUAAAaubEVOLi

输出样例

yes
yes
n0

BUG 代码

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
    char s[1005];
    while(scanf("%s", &s) != EOF) {
        int len = strlen(s), flag = 1;
        for (int i = 0; i < len / 2 - 1; i++) {
            if (isalpha(s[i])) {
                if (islower(s[i]) && s[len - i - 1] != s[i] - 'a' + 'A') {
                    printf("no\n");
                    flag = 0;
                    break;
                }
                else if (isupper(s[i]) && s[len - i - 1] != s[i] - 'A' + 'a') {
                    printf("no\n");
                    flag = 0;
                    break;
                }
            }
            else {
                if (s[i] != s[len - i - 1]) {
                    printf("no\n");
                    break;
                }
            }
        }
        printf("yes\n");
    }
    return 0;
}

Author: $\text{BaconToast}$

相关推荐