zoukankan      html  css  js  c++  java
  • L2-008. 最长对称子串

    L2-008. 最长对称子串

    对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。

    输入格式:

    输入在一行中给出长度不超过1000的非空字符串。

    输出格式:

    在一行中输出最长对称子串的长度。

    输入样例:

    Is PAT&TAP symmetric?
    

    输出样例:

    11

    分析:从第一个字符开始,向左向右check(偶串和奇数串都要讨论一下)
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int len, l=1;
     4 
     5 //不同指针,直接用变量i j去表示下标就好了 
     6 void solve(char* s){
     7     int len=strlen(s);
     8     int i, j; 
     9     for(i=0; i<len; i++){
    10         //奇数 --即这个回文串可能是奇数串 
    11         for(j=0; i+j<len&&i-j>=0; j++){
    12             if(s[i-j]!=s[i+j])    break;
    13             if(2*j+1>l)    l=2*j+1;
    14         }
    15         //偶数 --即这个回文串可能是偶数串 
    16         for(j=0; i+j+1<len&&i-j>=0; j++){
    17             if(s[i-j]!=s[i+1+j])    break;
    18             if(2*j+2>l) l=2*j+2;
    19         }
    20     }
    21     cout<<l<<endl;
    22 }
    23 int main(){
    24     char str[1002];
    25     gets(str);        //get新技能 
    26     solve(str);
    27         
    28     return 0;
    29 } 
  • 相关阅读:
    HO引擎近况2020712
    大地形初探小结一
    大地形初探之信息收集
    真实大地形初探
    翻译22 Unity中的曲面
    翻译21 平面和线框着色
    翻译20 视差和法线、高度图回顾
    翻译19 GPU Instance
    翻译18 Realtime GI & LPPV & LOD
    翻译17 Mixed Lighting混合光照
  • 原文地址:https://www.cnblogs.com/ledoc/p/6610067.html
Copyright © 2011-2022 走看看