zoukankan      html  css  js  c++  java
  • Codeforces Round #410 (Div. 2) A. Mike and palindrome【判断能否只修改一个字符使其变成回文串】

    A. Mike and palindrome
    time limit per test
    2 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Mike has a string s consisting of only lowercase English letters. He wants to change exactly onecharacter from the string so that the resulting one is a palindrome.

    A palindrome is a string that reads the same backward as forward, for example strings "z", "aaa", "aba", "abccba" are palindromes, but strings "codeforces", "reality", "ab" are not.

    Input

    The first and single line contains string s (1 ≤ |s| ≤ 15).

    Output

    Print "YES" (without quotes) if Mike can change exactly one character so that the resulting string is palindrome or "NO" (without quotes) otherwise.

    Examples
    input
    abccaa
    output
    YES
    input
    abbcca
    output
    NO
    input
    abcda
    output
    YES

     【代码】:

    #include <bits/stdc++.h>
    using namespace std;
    int cnt=0;
    char a[30];
    int main()
    {
        scanf("%s",a);
        int n=strlen(a);
        for(int i=0;i<n/2;i++)//注意!回文串只要判长度一半
        {
            if(a[i]!=a[n-i-1])
                cnt++;
        }
        //cout<<cnt<<endl;
        if(((n%2)&&(cnt==0))||cnt==1) puts("YES");//注意特判
        else puts("NO");
        return 0;
    }
    

      

  • 相关阅读:
    [专题六] 位运算
    [专题五] 二叉树
    [专题四] 并查集
    [专题三] 图论
    [专题二] 排序
    [专题一] 栈和队列
    我的最新书单
    虚拟机极简配置manjaro gnome
    运算符重载
    Manjaro kde 18.0安装与基本配置
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7994747.html
Copyright © 2011-2022 走看看