zoukankan      html  css  js  c++  java
  • LeetCode 5. 最长回文子串

    LeetCode 5. 最长回文子串

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

    示例 1:

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

    输入: "cbbd"
    输出: "bb"


    知识点:

    • substr(); // 求子串
    • 回文数的个数分,”奇数个“、”偶数个“分别处理
    function longestPalindrome($s) {
        $ans = $s[0];
        $ans_num = 1;
        for ($i = 1; $i < strlen($s); ++ $i) {
            // 回文数个数为奇数个
            $temp = 1;
            for ($j = $i - 1, $k = $i + 1; $j >= 0 and $k < strlen($s); -- $j, ++ $k) {
                if ($s[$j] == $s[$k]) {
                    $temp += 2;
                } else {
                    break;
                }
            }
            if ($temp > $ans_num) {
                $ans = substr($s, $j + 1, $temp);
                $ans_num = $temp;
            }
    
            // 回文数个数为偶数个
            $temp = 0;
            for ($j = $i - 1, $k = $i; $j >= 0 and $k < strlen($s); -- $j, ++ $k) {
                if ($s[$j] == $s[$k]) {
                    $temp += 2;
                } else {
                    break;
                }
            }
            if ($temp > $ans_num) {
                $ans = substr($s, $j + 1, $temp);
                $ans_num = $temp;
            }
        }
        return $ans;
    }
  • 相关阅读:
    Solved:Spring Junit Test NoSuchMethodError
    Stack实现
    CLRS10.2-8练习
    CLRS10.2-7练习
    CLRS10.2-4练习
    CLRS10.1-7练习
    CLRS10.1-6练习
    算法:吸血鬼数字算法
    CLRS最大子数组问题
    VS快捷键
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/11768490.html
Copyright © 2011-2022 走看看