2023年9月8日 星期五

【LeetCode】【Kotlin】409. Longest Palindrome (String)


題意

題目給一串字串,請用其中的字元拼湊回文,輸出能拼出的最常長度。
🔅注意大小寫要區分

題解

中間放一個或兩個字元,兩側字元要兩兩對稱才能放入。

程式碼



class Solution {
    fun longestPalindrome(s: String): Int {
        var lettersCount = IntArray('z'-'A' + 1)
        for(str in s){
            //if('A' <= str && str <= 'z')
            lettersCount[str - 'A']++
        }
        var haveOdd = false
        var sum = 0
        for(n in lettersCount){
            if(n==0) continue
            if (n%2==1) {
                if (!haveOdd) haveOdd = true
                sum += n-1
            } else {
                sum += n
            }
        }

        return sum + (if (haveOdd) 1 else 0)
    }
}

129ms / 33.97MB (beats 96.63% / 93.26%)

0 comments:

張貼留言