六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 42|回复: 0

求一字符串中最大回文串的长度

[复制链接]

升级  57.33%

114

主题

114

主题

114

主题

举人

Rank: 3Rank: 3

积分
372
 楼主| 发表于 2013-1-27 04:59:23 | 显示全部楼层 |阅读模式
比如:

  • "AABB"      回文长度为: 4  回文子串为: "AABB"
  • "12abcba22" 回文长度为: 7  回文子串为: "2abcba2"


#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int argc, char **argv){    if (argc != 2) {        printf("usage: ./a.out <string>\n");        exit(EXIT_FAILURE);    }    char    *s = argv[1];    char    *p;    int     max = 1;    int     i;    for (p = s; *p != '\0'; p++) {        for (i = 1; (p - i) >= s && *(p + i) != '\0'; i++) {            if (*(p - i) != *(p + i))                break;        }        if (max < (i * 2 - 1))            max = (i * 2 - 1);        for (i = 0; (p - i) >= s && *(p + i + 1) != '\0'; i++) {            if (*(p - i) != *(p + i + 1))                break;        }        if (max < (i * 2))            max = (i * 2);    }    printf("max = %d\n", max);    exit(EXIT_SUCCESS);}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表