`
steven-zhou
  • 浏览: 213315 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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

阅读更多
比如:
  • "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);
}




分享到:
评论

相关推荐

    计算字符串中最大回文长度,并返回回文字符串及长度

    本题目的重点在于如何编写C++代码来找到输入字符串中的最大回文子串及其长度。这个问题是字符串处理和算法设计的经典问题,涉及到的主要知识点包括字符串操作、动态规划和回文子串搜索。 首先,我们需要理解如何...

    C 语言 指针实现 字符串是否为回文

    在数学和计算机科学领域,一个字符串被称为回文(Palindrome),如果该字符串从前往后读和从后往前读是完全一样的。例如,“level”、“madam”、“racecar”等都是回文字符串。 #### 使用指针进行字符串处理 在...

    判断字符串是否“回文”

    ### 实现字符串回文判断的逻辑 在编程中,判断字符串是否为回文通常涉及到以下步骤: 1. **定义回文规则**:首先明确回文的概念,即字符串顺读和逆读一致。 2. **提取字符串**:获取需要判断的字符串。 3. **对比...

    判断字符串是否回文

    **回文**是一种特殊的字符串,它从前向后读和从后向前读都是一样的。例如,“madam”、“racecar”等都是回文字符串。回文检测是计算机科学中的一个经典问题,广泛应用于文本处理、密码学等领域。 #### 二、C#语言...

    寻找字符串中最长的回文子串的长度

    在IT领域,字符串处理是计算机科学中的一个基本概念,尤其在编程语言如C++中,字符串操作被广泛应用。本问题关注的是寻找一个字符串中最长的回文子串及其长度。回文子串是指一个字符串,从前往后读和从后往前读完全...

    回文字符串

    在计算机科学中,判断一个字符串是否为回文字符串通常采用以下几种方法: 1. **直接比较法**:将原字符串与反转后的字符串进行比较,如果两者相同,则原字符串是回文字符串。 2. **指针法**:使用两个指针分别指向...

    字符串处理- 回文串相关- 回文串的判断.rar

    回文串是字符串处理中的一个重要概念,它是指一个字符串从左到右读和从右到左读完全相同的字符串。例如,“上海自来水来自海上”、“ABBA”和“12321”都是回文串。在编程和算法设计中,回文串的判断是一个常见的...

    字符串中的回文子串(Delphi).txt

    给定一个字符串 `S`,你需要找出其中所有长度为偶数的回文子串,并计算它们的总数。 **输入**: 输入包含一个字符串 `S`,字符串的长度不超过10^6。 **输出**: 输出一个整数,表示长度为偶数的回文子串的总数。 ##...

    C++/C求最长回文子串

    输入一个字符串,求出其中最长的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同,如abba和xyyxyyx。在判断时,应该忽略所有标点符号和空格,且忽略大小写,但输出应该...

    字符串处理- 回文串相关.rar

    回文串是字符串处理中的一个重要概念,它是指一个正读反读都能读通的字符串,比如"上海自来水来自海上"、"abccba"等。在编程领域,回文串的判断、查找和生成等操作常常被用作面试题或者算法练习,涉及到字符串的基本...

    字符串处理- 回文串相关- Manacher 算法.rar

    回文串是字符串处理中的一个重要概念,它是指正读反读都能得到相同字符串的序列,例如"aba"、"abcba"和"madam"等。在计算机科学中,回文串的应用广泛,如在生物信息学中识别DNA序列、文本处理中的模式匹配以及算法...

    aba.rar_ABA_判断以@为结束符的字符串是否_回文序列

    在编程领域,"回文序列"是一个常见的概念,它指的是一个字符串无论从左向右读还是从右向左读都是一样的。例如,"madam"、"racecar" 和 "level" 都是回文序列。在这个问题中,我们的任务是设计一个算法来检查以'@'为...

    C 语言编写用于判断一个字符串是否是回文字符串.pdf

    因此,在编程实践中,编写用于判断回文字符串的程序,不仅仅是为了完成一个简单的任务,更是对程序员字符串处理能力的一次锻炼。它要求我们对字符串的内部结构有深刻的认识,并能够熟练使用C语言提供的字符串操作...

    递归实现回文判断

    回文是指一个字符串从左到右读和从右到左读都是一样的字符串。例如,“abcba”、“madam”等都是回文字符串。 ### 二、递归基础 递归是一种编程技术,在这种技术中,函数通过调用自身来解决问题。递归通常用于解决...

    PHP判断一个字符串是否是回文字符串的方法

    在编程领域中,回文字符串是一个从前往后读和从后往前读都相同的字符串。它在很多场景下有着广泛的应用,例如在数据校验、字符串比较等过程中,判断一个字符串是否为回文可能会被用到。在PHP这一广泛使用的服务器端...

    字符串处理- 回文串相关- 求最长回文子串.rar

    本资料“字符串处理- 回文串相关- 求最长回文子串.rar”主要探讨的是如何在给定的字符串中找到最长的回文子串。 回文子串是字符串的一个子序列,它本身是一个回文串。例如,字符串 "babad" 的回文子串有 "bab", ...

    python 回文子串,给你一个字符串a和一个正整数n,判断a中是否存在长度为n的回文子串。

    # 给你一个字符串a和一个正整数n,判断a中是否存在长度为n的回文子串。 # 如果存在,则输出YES,否则输出NO。 # 回文串的定义:记串str逆序之后的字符串是str1,若str=str1,则称str是回文串,如"abcba". # 输入...

    如何输出字符串的最长回文子串

    在编程领域,字符串处理是常见的任务之一,而寻找字符串中的最长回文子串是一个经典问题。回文子串是指在不改变子串中字符顺序的情况下,读取子串正向和反向是一样的字符串。例如,“madam”、“racecar”等都是回文...

    字符串最长回文实现

    在编程领域,字符串处理是常见的任务之一,而寻找字符串中的最长回文子串是一个经典问题。回文是指正读反读都一样的字符串,比如“上海自来水来自海上”。本篇文章将探讨如何实现寻找一个字符串中最长回文子串的算法...

    python简单算法04:判断一个字符串是否为回文串的排列之一

    给定一个问题,我们需要编写一个名为`palindromic`的函数,它接受一个字符串`s`作为参数,并返回一个布尔值,表示`s`是否可以被排列成一个回文串。 首先,我们需要理解解题的关键在于字符计数。一个字符串能够构成...

Global site tag (gtag.js) - Google Analytics