zoukankan      html  css  js  c++  java
  • 牛客寒假算法基础集训营4 I题 Applese 的回文串

    链接:https://ac.nowcoder.com/acm/contest/330/I
    来源:牛客网
     

    自从 Applese 学会了字符串之后,精通各种字符串算法,比如……判断一个字符串是不是回文串。


    这样的题目未免让它觉得太无聊,于是它想到了一个新的问题。

    如何判断一个字符串在任意位置(包括最前面和最后面)插入一个字符后能不能构成一个回文串?

    输入描述:

    仅一行,为一个由字母和数字组成的字符串 s。

    输出描述:

    如果在插入一个字符之后可以构成回文串,则输出"Yes", 否则输出"No"。

    示例1

    输入

    复制

    applese

    输出

    复制

    No

    示例2

    输入

    复制

    java

    输出

    复制

    Yes

    备注:

    |s|≤105

    题解:同时从两边遍历字符串,如果遇到左不等于右后判断左边删一个或者右边删一个是否能全部遍历完;

    例如:j a v a  s[0]!=s[3],所以删除左边一个再次遍历,a v a是回文串,成立,输出Yes;

    #include<iostream>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    char s[111111];
    bool solve(int x,int y,bool flag){
            while(x<=y){
                    if(s[x]==s[y])
                            x++,y--;
                    else if(flag)//只能删一次
                            return solve(x+1,y,0)||solve(x,y-1,0);
                    else
                            return 0;
            }
            return 1;
    }
    int main()
    {
            scanf("%s",s);
            solve(0,strlen(s)-1,1)?printf("Yes
    "):printf("No
    ");
            return 0;
    }
    
  • 相关阅读:
    HTML的BODY内标签介绍
    前端HTML基础和head部分
    pymysql模块
    数据库基础五
    数据库基础四
    数据库基础三
    数据库基础二
    数据库基础一
    洛谷P5055 可持久化文艺平衡树 (可持久化treap)
    BZOJ
  • 原文地址:https://www.cnblogs.com/aeipyuan/p/10459915.html
Copyright © 2011-2022 走看看