当前位置:   article > 正文

2023华为OD面试手撕真题【判断最长回文子串】_华为od手撕代码难度

华为od手撕代码难度

        这是一个常规的面试手撕代码题,题目难度适中,代码简短,考察算法知识点经典,有简单暴力解法,也有更优秀时间复杂度更低的解法,面试官可进行由简到难的提问,逐步深入,很能考察面试者的相关能力。

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。

示例 1:

  1. 输入: "babad"
  2. 输出: "bab"
  3. 注意: "aba"也是一个有效答案。

示例 2:

  1. 输入: "cbbd"
  2. 输出: "bb"

        首先还是老样子,拿到题目如果想不到优秀的解法,一定要能写出暴力简单的解法,及时时间复杂度不达标,最起码能说明代码能力还是有的,不至于一行代码憋不出来的水平。

        先说下结论,从时间复杂度考虑,从大到小分别为:暴力法、中心扩展法、马拉车算法。

1 暴力解法:【直接双重循环,判断子串是否是回文,时间复杂度:O(n^3)】

Python + Java:

  1. class Solution:
  2. def longestPalindrome(self, s):
  3. """
  4. :type s: str
  5. :rtype: str
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/385309
推荐阅读
相关标签
  

闽ICP备14008679号