LeetCode之Longest Palindromic Substring(Kotlin)

問(wèn)題:



方法:
主要使用了動(dòng)態(tài)規(guī)劃,動(dòng)態(tài)公式:dp[i][j] = dp[i+1][j-1],子串必然是由更短子串衍生而來(lái)。

package com.eric.leetcode

class LongestPalindromicSubstring {
    fun longestPalindrome(s: String): String {
        if (s.length < 2) {
            return s
        }
        var left = 0
        var maxLength = 1
        val dp = Array(s.length) {
            Array(s.length) {
                true
            }
        }
        for (L in 2..s.length) {
            for (i in 0..s.lastIndex) {
                val j = L + i - 1;
                if (j >= s.length) {
                    break
                }
                if (s[i] != s[j]) {
                    dp[i][j] = false
                } else {
                    dp[i][j] = dp[i+1][j-1]
                }
                if (dp[i][j] && L > maxLength) {
                    maxLength = L
                    left = i
                }
            }
        }
        return s.substring(left until left+maxLength)
    }
}

fun main() {

}

有問(wèn)題隨時(shí)溝通

具體代碼實(shí)現(xiàn)可以參考Github

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容