如题:代码返回最大的回文子串,长度一样返回第一个。
空间效率O(1)
时间效率O(N)(一边遍历搞定)

#include <stdio.h>char* answer;char* maxPalindrome( const char *s )
{bool hasStart = false;int startPos = 0, max = 1, maxStart = 0, maxEnd = 0;for( int i=1; s[i]!='\0'; i++ ){if( !hasStart ){if( s[startPos]==s[i] ){if( i-startPos>max ){max = i-startPos;maxStart = startPos;maxEnd = i;}continue;}}if( startPos>0 && s[startPos-1]==s[i] ) //李文文指出此处要先检查startPos>0{startPos--;hasStart = true;}else{if( hasStart==true )startPos = --i;elsestartPos = i;hasStart = false;}if( startPos<=0 || i-startPos+1>max ){max = i-startPos;maxStart = startPos;maxEnd = i;}}int length = maxEnd-maxStart+1;answer = new char[length+1];for( int i=0; i<length; i++ ){answer[i] = s[i+maxStart];}answer[length] = '\0';return answer;
}int main()
{char s[10][100] = { "aigbcddcbgaaaaaaaa","aigbcddcbggggggggg","aaaaa","aaaaaa","aaaaaaaigbcddcbgiaaaaaaa","a"};for( int i=0; i<6; i++ )printf( "%s\n", maxPalindrome(s[i]) );
}

这个自己理解吧,我也不多说了没什么难度。欢迎反馈各种错误 输入例子。

笔试——字符串算法题——寻找最大回文子串相关推荐

  1. leetcode算法题--最长回文子串

    题目链接:https://leetcode-cn.com/problems/longest-palindromic-substring/ 相关题目:最长回文子序列 动态规划 dp[i][j]表示从i到 ...

  2. 统计5个字符串回文个数c语言,第一章 字符串 – 1.5 最长回文子串 - 编程之法:面试和算法心得...

    最长回文子串 题目描述 给定一个字符串,求它的最长回文子串的长度. 分析与解法 最容易想到的办法是枚举所有的子串,分别判断其是否为回文.这个思路初看起来是正确的,但却做了很多无用功,如果一个长的子串包 ...

  3. [Leedcode][JAVA][第5题][最长回文子串][数组][动态规划]

    [问题描述][第5题][最长回文子串][中等] 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000.示例 1:输入: "babad" 输出: & ...

  4. [动态规划|字符串] leetcode 5 最长回文子串

    [动态规划|字符串] leetcode 5 最长回文子串 1.题目 题目链接 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例1: 输入: "b ...

  5. (算法)最长回文子串

    题目: 求一个字符串的最长回文子串 思路: 1.暴力枚举 最容易想到的就是暴力破解,列举每一个子串,然后根据回文的定义判断是不是回文,找到最长的那个. 求每一个子串的时间复杂度为O(N^2),判断子串 ...

  6. leetcode算法题--最长回文子序列★★

    原题链接:https://leetcode-cn.com/problems/longest-palindromic-subsequence/ 注意不是回文子串,子串必须是连续! dp[i][j]表示字 ...

  7. 字符串系列之最长回文子串

    2019独角兽企业重金招聘Python工程师标准>>> 问题描述:     给定一个字符串S=A1A2...An,要求找出其最长回文子串(Longest Palindromic Su ...

  8. 算法-两最长回文子串

    题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1:输入: "babad" 输出: "bab" 注意: &q ...

  9. 如何找到字符串中的最长回文子串?

    作者 | channingbreeze 责编 | 胡巍巍 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司.可是努力了很久,别说BAT了,连 ...

  10. Manacher's algorithms(马拉车算法)最长回文子串

    最长回文子串 https://leetcode-cn.com/problems/longest-palindromic-substring/ 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 ...

最新文章

  1. 7-1 查找书籍(20 分)(程序设计天梯赛模拟练习题)
  2. Android SERVICE后台服务进程的自启动和保持
  3. CSDN Blog V3.0.0.2升级公告
  4. json解析详解 java_Java解析Json数据的两种方式详解
  5. 让人迷茫的三十岁,从专业技能、行业知识和软实力的人才三角谈起
  6. Qt学习(十一):QT设置静态数据库
  7. python log函数_Python3
  8. 使用VSTS为ASP.NET Core构建DevOps CI/CD管道
  9. 网络知识 -- 第二部
  10. Java自动化测试系列[v1.0.1][PO设计模式]
  11. VMware ThinApp应用程序虚拟化工具
  12. python微信语音转发方法_语音转发方法与流程
  13. ROS学习笔记---ros的通信机制
  14. 车载以太网交换机功能和应用案例汇总, 适用于AVB/TSN, 802.1AS(gPTP时钟同步)
  15. 用计算机怎么计算税率表,5000元新个税计算器公式税率表
  16. 有哪些道理是你毕业多年后才明白的?
  17. 11-12月份域名行业速报
  18. Python初始化空列表,空字典,空元组,空集合
  19. 当你老了,一生最后悔什么?
  20. 毕业设计 超声波红外自动调速风扇系统

热门文章

  1. 解决win10分辨率过高导致某些软件显示小的办法
  2. SSLOJ·马蹄印【DFS】
  3. ppt转图片(支持动画帧的转换)
  4. npm 错误 ETIMEDOUT
  5. 文字转语音播报,兼容多种浏览器
  6. python合并两列数据_python将两列合并
  7. js中ajax提交表单提交表单提交,JS中ajax请求提交form表单
  8. “学习方法”学习笔记(一)费曼技巧
  9. open SUSE 查看本机ip地址
  10. 软件测试团队口号及队名,团队口号及霸气队名