• 回文子串[输出所有回文子串]


    回文子串
        总时间限制:1000ms  内存限制:65536kB
    描述
        给定一个字符串,输出所有长度至少为2的回文子串。
        回文子串即从左往右输出和从右往左输出结果是一样的字符串,
        比如:abba,cccdeedccc都是回文字符串。
    输入
        一个字符串,由字母或数字组成。长度500以内。
    输出
        输出所有的回文子串,每个子串一行。
        子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。
    样例输入
        123321125775165561
    样例输出
        33
        11
        77
        55
        2332
        2112
        5775
        6556
        123321
        165561

    分析:

    该题目输出格式要求比较特别:子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。

    所以,这里分如下几个步骤来完成任务:

    1、枚举子串的所有可能的长度 for(len=2;len<=n;len++)

    2、当长度确定为len时,枚举所有长度为len的子串的开始点。

            maxBegin=n-len;
            for(begin=0;begin<=maxBegin;begin++)

    3、当开始点和长度明确时,可以遍历该子串并判断其是否回文串。

                j=begin+len-1;
                for(i=begin;i<j;i++,j--)

    详细代码如下:

     1 #include<stdio.h>
     2 #include<string.h>
     3 int main(int argc, char *argv[])
     4 {
     5     char a[505];
     6     int n,len,begin,maxBegin,i,j;
     7     freopen("29.in","r",stdin);
     8     scanf("%s",a);
     9     n=strlen(a);
    10     for(len=2;len<=n;len++)//枚举子串的所有可能的长度
    11     {
    12         maxBegin=n-len;
    13         for(begin=0;begin<=maxBegin;begin++)//枚举子串的开始点 
    14         {
    15             j=begin+len-1;
    16             for(i=begin;i<j;i++,j--) //遍历当前子串(a[i]~a[begin+len-1]),判断是否回文串 
    17             {
    18                 if(a[i]!=a[j]) break;
    19             }
    20             if(i>=j)//是回文串
    21             {
    22                 j=begin+len-1;
    23                 for(i=begin;i<=j;i++) printf("%c",a[i]);
    24                 printf("
    ");
    25             }
    26         }
    27     } 
    28     return 0;
    29 }
  • 相关阅读:
    IOS开发中实现UITableView按照首字母将集合进行检索分组
    IOS开发中设置导航栏主题
    IOS中使用.xib文件封装一个自定义View
    IOS中将字典转成模型对象
    WindowsPhone8中LongListSelector的扩展解决其不能绑定SelectdeItem的问题
    WindowsPhone8.1 开发-- 二维码扫描
    tomcat 开机自启
    redis ubuntu 开机自启
    webStorm 中使用 supervisor 调试
    ubuntu 14.04 tab失效问题
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/5077718.html
走看看 - 开发者的网上家园