3169: 小万的回文串

来源:互联网 发布:app提示网络连接失败 编辑:程序博客网 时间:2024/04/30 02:08

3169: 小万的回文串

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 236  Solved: 122
[Submit][Status][Web Board]

Description

回文串是一个正读和反读都一样的字符串,例如,“z”,“aaa”,“abba”是回文串。小万嗜好回文串,见到一个字符串,就尝试将其转换为回文串。如果一个字符串最多改变一个字符后成为回文串,就成为可转换回文串,如,“ytu”,“ab” 是转换回文串,而“computer”既不是回文串,也不是可转换回文串。请编写一个程序判定任意一个由小写字母组成的字符串是否为回文串或可转换回文串。

Input

字符串s(1<=|s|<=15)。

Output

如果s是回文串或可转换回文串,输出“YES”,否则输出“NO”。

Sample Input

abccaa

Sample Output

YES

#include <stdio.h>#include <stdlib.h>#include<string.h>int main(){    int i,j,n;    char s[100];int    num=0;    gets(s);    i=0;    j=strlen(s)-1;    while(i<=j)    {        if(s[i]!=s[j])            num++;        i++;        j--;    }if(num<=1)        printf("YES\n");        else            printf("NO\n");    return 0;}

一直觉得这道题很难,还要判断转换后的是否为回文,太麻烦了,,刚才一位同学说只需判断其中有几个不相同字符的即可,顿时恍然大悟。