C++程序分享--常见算法/编程面试题:(Google)对称字符串的最大长度

关注我,持续分享逻辑思维&管理思维&面试题; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;
有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》, 《做好面试准备,迎接2024金三银四》。
图解《程序员面试常见的十大算法》及代码实现

-------------------------------------正文----------------------------------------

题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符
串里最长的对称子字符串是“goog”,因此输出4。
分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。

class Solution {
public:
    string longestPalindrome(string s) {
        if (s.empty()) return "";
        int start = 0, end = 0;
        for (int i = 0; i < s.size(); i++) {
            int len1 = expandAroundCenter(s, i, i); // 奇数情况,如 "aba"
            int len2 = expandAroundCenter(s, i, i + 1); // 偶数情况,如 "abba"
            int len = max(len1, len2);
            if (len > end - start) {
                start = i - (len - 1) / 2;
                end = i + len / 2;
            }
        }
        return s.substr(start, end - start + 1);
    }
 
    int expandAroundCenter(const string& s, int left, int right) {
        int L = left, R = right;
        while (L >= 0 && R < s.size() && s[L] == s[R]) {
            L--;
            R++;
        }
        return R - L - 1;
    }
};

感兴趣的同学辛苦 关注/点赞 ,持续分享逻辑、算法、管理、技术、人工智能相关的文章。

博主其它经典原创:《管理心得--如何高效进行跨部门合作》,《技术心得--如何成为优秀的架构师》、《管理心得--如何成为优秀的架构师》、《管理心理--程序员如何选择职业赛道》,及
C#实例:SQL如何添加数据》,《C#实战分享--爬虫的基础原理及实现》欢迎大家阅读。

最近更新

  1. TCP协议是安全的吗?

    2024-05-11 18:06:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-11 18:06:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-11 18:06:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-11 18:06:03       20 阅读

热门阅读

  1. 利用干扰源模型确定多通道音频信号盲源分离

    2024-05-11 18:06:03       13 阅读
  2. OceanBase OAT安装

    2024-05-11 18:06:03       12 阅读
  3. 单播、组播、广播

    2024-05-11 18:06:03       9 阅读
  4. PYTHON利用实时交易量智能股票交易系统

    2024-05-11 18:06:03       13 阅读
  5. MYSQL SQL优化思路和方法

    2024-05-11 18:06:03       19 阅读
  6. fastapi数据库连接池的模版

    2024-05-11 18:06:03       15 阅读
  7. D3.js实战:数据可视化高级技巧实例应用

    2024-05-11 18:06:03       16 阅读
  8. idea

    idea

    2024-05-11 18:06:03      15 阅读
  9. postman---认证(Certificates)是什么作用?

    2024-05-11 18:06:03       12 阅读
  10. git命令详解+使用样例

    2024-05-11 18:06:03       17 阅读
  11. 代码随想录训练营Day29:动态规划1

    2024-05-11 18:06:03       16 阅读