给定一个字符串,判断其中是否存在回文子串,并输出它(要求回文子串长度不小于3)
在做这题时就需要知道什么是回文子串,回文子串就是字符串—jkldfdio中的—dfd就是回文子串,回文子串中还有—jkkj也是回文子串,所以回文子串分为两种情况——奇与偶。
知道回文子串就可以开始思考这个题目了。分为两种情况,但相差不多,所以可以先从其中一种入手。
先从奇回文子串入手。
奇回文有一个最大的特点就是,中间有一个孤立的字符,所以就可以以这个“点”去破“面”,再者奇回文最小就是3个字符,所以不用判断长度是否小于3,也是稍微简单一点的。所以大概的轮廓就已经描绘出来了——找到第n个字符x,然后向两边n+1,n-1拓展,判断n+1与n-1对应字符是否相同,所以就需要用到数组。相同就继续向n+2,n-2拓展,继续判断…直到不相等时输出中间的字符就为奇回文子串。代码如下:
而偶回文子串则是需要进行判断长度是否小于3,而且两比较的数的差值也从奇数变为偶数,其余大致与奇回文子串相同。代码如下:
然后合并成为一个主函数:
结果:
其中可能会存在一些小问题,bug之类的,欢迎大家指正,谢谢。
关于字符串中的回文子串,如何输出
最新推荐文章于 2025-03-02 21:12:55 发布