C语言程序设计整理(9)找出最长回文字符串

文章介绍了如何在给定字符串s中找到最长的回文子串,以及提供了一个使用C语言编写的函数`longestPalindrome`来实现此功能。同时,还给出了计算字符串中回文子串总数的函数`countSubstring`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)题目描述:

给你一个字符串 s,找到 s 中最长的回文子串。

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

(二)示例展示:

输入:s = "babad"

输出:"bab"

解释:"aba" 同样也是正确的答案。                                                                                         

(三)参考代码:

/*Longest Palindromic Substring*/
char* longestPalindrome(char* s) {
    int n = strlen(s);          //计算字符串s的长度
    int strl = 0, strr = 0;     //记录最长的字符串的最左和最右的字符序号
    
    /*
    **寻找最长的回文字符串,这种方法对于这一类的回文串找法十分有用
    **其中i的遍历范围是[0,2*n-1)是因为回文字符串有两种类型
    **分别是奇数个的字符串和偶数个的字符串,这样遍历直接同时
    **遍历了两种类型,非常节省时间
    */
    for(int i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值