news 2026/4/18 12:24:57

12.11 - 最长回文子串 main函数是如何开始的

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12.11 - 最长回文子串 main函数是如何开始的

目录

1.最长回文子串

a.核心思想

b.思路

c.步骤

2.main函数是如何开始的


1.最长回文子串

5. 最长回文子串 - 力扣(LeetCode)https://leetcode.cn/problems/longest-palindromic-substring/

class Solution { public: string longestPalindrome(string s) { // 先处理特殊情况 if (s.empty()) return ""; int n = s.size(); int start = 0, maxLen = 1; auto expandAroundCenter = [&](int left, int right) { while (left >= 0 && right < n && s[left] == s[right]) { left--; right++; } // 循环结束后,实际回文范围是[left+1, right-1] int curLen = right - left - 1; if (curLen > maxLen) { maxLen = curLen; start = left + 1; } }; for (int i = 0; i < n; i++) { // 奇数长度回文 expandAroundCenter(i, i); // 偶数长度回文 if (i + 1 < n) { expandAroundCenter(i, i + 1); } } return s.substr(start, maxLen); } };

a.核心思想

遍历所有可能的子串,判断其是否为回文串,并记录最长回文子串。

b.思路

采用中心扩散法,以每个字符(或两个字符之间的间隙)为中心,向两边扩散,比较两边字符是否相同,从而找到以该中心的最长回文子串。

c.步骤

① 初始化一个变量用于记录最长回文子串的起始位置和长度。

② 遍历字符串,对于每个字符:

  • 以当前字符为中心,向左右两边扩散,找到奇数长度的最长回文子串。

  • 以当前字符和下一个字符之间的间隙为中心,向左右两边扩散,找到偶数长度的最长回文子串。

③ 比较每次找到的回文子串的长度,更新最长回文子串的记录。

④ 根据记录的起始位置和长度,从原字符串中截取并返回最长回文子串。

2.main函数是如何开始的

  1. 启动:操作系统加载程序,跳转到程序入口(通常为_start函数)。

  2. 初始化:运行时库(如CRT)执行全局变量、静态变量的构造函数初始化。

  3. 调用main:运行时库调用main()函数,开始执行用户代码。

  4. 结束:main()返回退出码,操作系统终止程序。

操作系统启动程序→运行时库初始化→自动调用main()→执行用户逻辑→返回退出码

希望这些内容对大家有所帮助!

感谢大家的三连支持!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:13:39

【每天学习一点算法 2025/12/11】合并两个有序链表

每天学习一点算法 2025/12/11 题目&#xff1a;合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 递归方法看过我反转链表的应该都知道递归链表的要点。 因为是升序的链表&#xff0c;所以我们每次只选当前…

作者头像 李华
网站建设 2026/4/18 8:15:00

Q#测试效率提升10倍的秘密(仅限VSCode用户)

第一章&#xff1a;Q# 程序的 VSCode 单元测试概述 在量子计算开发中&#xff0c;确保 Q# 程序的正确性至关重要。Visual Studio Code&#xff08;VSCode&#xff09;结合 .NET SDK 提供了对 Q# 项目进行单元测试的完整支持&#xff0c;使开发者能够在本地快速验证量子操作的行…

作者头像 李华
网站建设 2026/4/18 9:22:57

如何为你的Python项目构建pyproject.toml文件

参考链接&#xff1a;https://packaging.python.org/en/latest/guides/writing-pyproject-toml/https://packaging.python.org/en/latest/guides/writing-pyproject-toml/基本上现在大部分github的python开发项目&#xff0c;都有pyproject.toml配置&#xff0c;所以这篇官网pa…

作者头像 李华
网站建设 2026/4/18 9:22:58

卡内基跨学科团队利用随机森林模型,基于406份样本成功捕捉33亿年前生命遗迹

解码深埋于地表之下的古老岩层里的有机分子&#xff0c;对于掌握地球历史与研究生命演进具有至关重要的作用。这些生命活动的潜在见证者不仅能够破解地球生命诞生的谜题&#xff0c;尤其是厘清光合作用的起源和地球大气氧化进程的关联&#xff0c;还能填补生命演进时间线的空白…

作者头像 李华
网站建设 2026/4/18 9:23:03

用JAVA开启摄影约拍新体验:线上预约,便捷触手可及

用JAVA开启摄影约拍新体验&#xff1a;线上预约&#xff0c;便捷触手可及在快节奏的现代生活中&#xff0c;人们愈发渴望用摄影记录美好瞬间&#xff0c;却常因找不到合适摄影师或预约流程繁琐而烦恼。利用JAVA搭建的摄影约拍平台&#xff0c;凭借其强大的技术优势&#xff0c;…

作者头像 李华
网站建设 2026/4/18 9:23:03

基于SpringBoot的学生评奖评优管理系统-计算机毕业设计源码+LW文档分享

摘 要 当下教育管理领域正经历一场从传统人工操作到智能化转变的深刻变革&#xff0c;这种技术革新提升了教育机构的运营效益&#xff0c;借助构建标准化、制度化以及程序化的智能评奖评优管理体系&#xff0c;解决了传统管理模式里的随意性问题&#xff0c;提高了管理流程的规…

作者头像 李华