当前位置: 首页 > wzjs >正文

c 做网站实例在线教育

c 做网站实例,在线教育,能看全世界地图的app,小程序商城使用教程给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cbbd" 输…

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

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

示例 2:

输入:s = "cbbd"
输出:"bb"

提示:

  • 1 <= s.length <= 1000
  • s 仅由数字和英文字母组成

 答案:

char* longestPalindrome(char* s) { // leeCode 5.最长回文子串size_t len = strlen(s);// 如果字符串长度大于2,如果它是回文串,则去掉头和尾仍然是回文串,所以可以推导公式。// 设 f(i,j) 表示字符串的子串s[i - j]是否为回文串,公式推导如下:// 当j == i时,即只有一个字符, f(j, j) 为true// 当j - i = 1,  f(i,j)结果取决于s[i] == s[j]// 当j - i > 1,  f(i,j) == s[i] == s[j] && f(i + 1, j - 1)// 定义好数据结构,用一个二维数组存放各个f(i,j)的判断结果: 1为真,0为假// f指向int* 数组的第一个元素, 数组中每个指针为一个一维数组的首地址。最终求f[i][j]为true时表示的最长字串。int** f = (int**)malloc(sizeof(int*) * len);if (f == NULL) {fprintf(stderr, "malloc return null");exit(EXIT_FAILURE);}for (int i = 0; i < len; i++) {// f[i] 保存的是一维数组的首地址f[i] = (int*) malloc(sizeof(int) * len);if (f[i] == NULL) {fprintf(stderr, "malloc return null");exit(EXIT_FAILURE);}}// 循环遍历字串,注意遍历顺序,确保能按顺便推导出结果,即计算f[i][j]时,要保证前面已经计算过f[i + 1][j - 1]的值int m = 0, n = 0, maxLen = 1;for (int j = 0; j < len; j++) {for (int i = 0; i <= j; i++) {if (i == j) {f[i][j] = 1;}else if (j - i == 1) {f[i][j] = s[i] == s[j] ? 1 : 0;}else {f[i][j] = (s[i] == s[j] && f[i + 1][j - 1]) ? 1 : 0;}if (f[i][j] && j - i + 1 > maxLen) {m = i;n = j;maxLen = j - i + 1;}}}// 释放内存for (int i = 0; i < len; i++) {free(f[i]);}free(f);char* res = (char*)malloc(sizeof(char) * (maxLen + 1)); // 字符串结束标志‘\0’也占一个位置if (res) {memcpy(res, &s[m], maxLen);res[maxLen] = '\0';}else {fprintf(stderr, "malloc return null");exit(EXIT_FAILURE);}return res;
}

测试代码:

void testLeeCode5() {char str[] = {'b', 'a', 'b', 'a', 'd', '\0'};char* res = longestPalindrome(str);printf("longestPalindrome(%s): %s\n", str, res);free(res); // 动态分配的内存需要释放
}

打印结果:

ok, 代码提交到LeeCode:

ok, 性能好像不怎么优秀,没看出为啥

http://www.dtcms.com/wzjs/89539.html

相关文章:

  • 图片设计在线海南seo
  • 岳阳做网站的公司品牌关键词优化
  • 免费制作网络商城网站搜索引擎技术优化
  • 网站建设公司yu平台接广告在哪里接的
  • 域名购买哪个网站最好个人网站制作模板
  • 南宁模板建站定制网站qq推广官网
  • 网站建站流程图seo关键词推广渠道
  • 服务器网站崩溃百度用户服务中心
  • opencart做网站视频企业网站有什么
  • 王占山战斗英雄seo优化博客
  • 0元建设黑网站网站seo提升
  • 专业建设网站多少钱如何做市场调研和分析
  • wordpress 作品 区别合肥seo整站优化网站
  • 个人做当地旅游网站武汉seo管理
  • 长春城市设施建设集团股份公司贺州seo
  • 百度html代码重庆seo博客
  • 宝安第一网站网络热词2021
  • 手机能建设网站吗b站2020推广网站
  • 如何在服务器上搭建网站百度平台app下载
  • 不上此网站枉做男人网站收录查询入口
  • baby做网站汽车电商如何从零做起
  • 企业免费网站建设国家卫健委每日疫情报告
  • html格式网站营销网站建设多少钱
  • 资金盘网站开发多少钱广州百度seo代理
  • 设计师服务平台网站百度模拟点击软件判刑了
  • 美国做垂直电商的网站软广告经典案例
  • dede一键更新网站出错查询网官网
  • 网站建设好发信息网投广告哪个平台好
  • 苹果软件做ppt下载网站有哪些内容吗郑州全域静态管理
  • 做网站都需要什么软件福州百度关键词排名