zoukankan      html  css  js  c++  java
  • Codeforces Gym100971 K.Palindromization-回文串 (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)

    这个题就是从字符串中删除一个字符,然后剩下的是回文串。

    我写的代码虽然长得好看,但是循环里面的比较条件容易想错,太智障了。。。

    一开始写的是计数比较,但是有的时候下标相同的也比较了,为了简单一些,直接看有没有条件不成立的,这样就少想好多东西(偷懒为主,嘻嘻嘻)。

    代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<cmath>
     5 #include<algorithm>
     6 using namespace std;
     7 const int N=1e6+10;
     8 char a[N];
     9 int main(){
    10     while(~scanf("%s",a)){
    11         int len=strlen(a);
    12         int flag1=0,flag2=0;
    13         int num=0,num1=0,num2=0;
    14         for(int i=0;i<len/2;i++){
    15             if(a[i]==a[len-1-i])num++;
    16             else{
    17                 flag1=i;flag2=len-1-i;break;
    18             }
    19         }
    20         //cout<<flag1<<" "<<flag2<<endl;
    21         for(int i=flag1+1;i<=len/2;i++){
    22             if(a[i]!=a[len-1-i+1]){   //这个比较容易想错
    23                 num1++;
    24                 //cout<<a[i]<<" "<<a[len-1-i+1]<<endl;
    25             }
    26         }
    27         for(int i=flag1;i<len/2;i++){
    28             if(a[i]!=a[len-1-i-1]){   //同上,易错
    29                 num2++;
    30                 //cout<<a[i]<<" "<<a[len-1-i-1]<<endl;
    31             }
    32         }
    33         //cout<<num<<" "<<num1<<" "<<num2<<endl;
    34         if(num==len/2){
    35             printf("YES
    ");
    36             printf("%d
    ",len/2+1);
    37         }
    38         else if(num1==0){
    39             printf("YES
    ");
    40             printf("%d
    ",flag1+1);
    41         }
    42         else if(num2==0){
    43             printf("YES
    ");
    44             printf("%d
    ",flag2+1);
    45         }
    46         else printf("NO
    ");
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    Composite in Javascript
    Model Validation in Asp.net MVC
    HttpRuntime.Cache vs. HttpContext.Current.Cache
    Controller Extensibility in ASP.NET MVC
    The Decorator Pattern in Javascript
    The Flyweight Pattern in Javascript
    Model Binding in ASP.NET MVC
    Asp.net MVC
    jQuery Ajax 实例 全解析
    ASP.NET AJAX入门系列
  • 原文地址:https://www.cnblogs.com/ZERO-/p/9703047.html
Copyright © 2011-2022 走看看