zoukankan      html  css  js  c++  java
  • 给一个字符串添加一个字符后,判断是不是回文串

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

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

    输入描述:

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

    输出描述:

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

    输入

    applese

    输出

    No


    思路:
      如果一个字符串可以通过添加一个字符变成回文串,那么它可以通过删除一个字符变成回文串。
      那么便可以从两边搜,若本来就是回文串,直接输出Yes,否则就找到不匹配的地方,然后判断分别删除两端后的字符串是否为回文串。
      注意输出的字符,这里要求Yes,No。我开始输出的YES,NO。然后找了几个小时的错误,抓狂...

    代码如下:
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<string>
     4 using namespace std;
     5 
     6 string s;
     7 
     8 bool isHuiWen(int p,int e){
     9     for(;p<=e;p++,e--)
    10         if(s[p]!=s[e])
    11             return 0;
    12     return 1;
    13 }
    14 
    15 int main(){
    16     cin>>s;
    17     int i,j;
    18     for(i=0,j=s.length()-1;i<=j;i++,j--)
    19         if(s[i]!=s[j])
    20             break;
    21     if(i>=j)
    22         printf("Yes
    ");
    23     else if(isHuiWen(i,j-1)||isHuiWen(i+1,j))
    24         printf("Yes
    ");
    25     else
    26         printf("No
    ");
    27     return 0;
    28 }
     
  • 相关阅读:
    Ducking
    MINITAB(二)
    JFreechart
    linux命令0424
    JAVA哈哈镜
    HTML(四)
    The 3n+1 problem
    [转载]:【读书笔记】.NET本质论
    ER图基本步骤
    [从架构到设计]第一回:设计,应该多一点(转载)
  • 原文地址:https://www.cnblogs.com/FrankChen831X/p/10339972.html
Copyright © 2011-2022 走看看