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

目录

1.最长回文子串

a.核心思想

b.思路

c.步骤

2.main函数是如何开始的


1.最长回文子串

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

cpp 复制代码
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()→执行用户逻辑→返回退出码

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

感谢大家的三连支持!

相关推荐
tdtsmt2 小时前
2026年SMT贴片加工选型指南:天地通电子推荐参考
c++
果壳science2 小时前
《自然本源》如何实现狭义相对论的代数化
笔记·算法·几何学
一木 之林2 小时前
插件、MCP、Skill 的区别?
java·c++·人工智能
ShineWinsu3 小时前
对于MySQL:内置函数的解析
linux·数据库·c++·mysql·面试·函数·查询
302wanger3 小时前
分享一个工作习惯:整点看即时消息
算法
洋不写bug4 小时前
排序(一)基础排序,插入|希尔|冒泡|直接选择排序详解
java·算法·排序算法·插入排序·冒泡排序·希尔排序·直接选择排序
牧羊人.3334 小时前
动手学深度学习 03 | 卷积神经网络实现手写数字识别
人工智能·深度学习·神经网络·算法·cnn
AgentMaster5 小时前
数据治理工具选型指南:一套可复用的四阶段决策框架
大数据·数据结构·人工智能·算法
程序猿编码5 小时前
纯C++轻量计算机视觉推理引擎:基于GGML的端侧CV模型部署技术全解析
开发语言·c++·计算机视觉·大模型·transformer
liliangcsdn5 小时前
最终留出样本/样本外测试集-holdout解读
算法