題意
題目給一串字串,請用其中的字元拼湊回文,輸出能拼出的最常長度。
🔅注意大小寫要區分
題解
中間放一個或兩個字元,兩側字元要兩兩對稱才能放入。
程式碼
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:
張貼留言