LeetCode 5 - Longest Palindromic Substring
class Solution {
var left = 0
var maxLen = 0
fun longestPalindrome(s: String): String {
val len = s.length
if (len < 2) return s
for(i in 0 until len ) {
extendPalindrome(s, i, i)
extendPalindrome(s, i, i + 1)
}
return s.substring(left, left + maxLen)
}
private fun extendPalindrome(s: String, j: Int, k: Int) {
var l = j
var r = k
while(l >= 0 && r < s.length && s[l] == s[r]) {
l--
r++
}
if(maxLen < r - l -1) {
left = l + 1
maxLen = r - l - 1
println("r = $r l = $l r - l - 1 = ${r - l - 1} left = $left maxLen = ${r - l - 1}")
}
}
}
fun main() {
val c = Solution()
println(c.longestPalindrome("babad"))
}