每日一題力扣409

2022-09-03 09:45:13 字數 869 閱讀 8944

給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。

在構造過程中,請注意區分大小寫。比如"aa"不能當做乙個回文字串。

就是出現雙數數量的字元肯定能夠組成回文的部分。就存下來這些數量;然後對於奇數個的要其中最大的偶數個。再留下乙個原奇數個的字元,真是太神奇了。

class

solution:

def longestpalindrome(self, s: str) ->int:

l_s =list(s)

#字典來儲存每個字母出現的個數

m ={}

for word in

l_s:

m[word]= m.get(word,0)+1#

如果有這個的話,就加一,沒有的話就新增key再賦值為0

result =0

for key, value in

m.items():

#如果出現個數為偶數,直接加入.偶數肯定可以做回文

if value % 2 ==0:

result +=value

else

:

#如果為奇數,則加value - 1,並且,該字母的次數變為1

result += value - 1#

,變成偶數加入回文串

m[key] = 1 #

關鍵行,處理例如:"aaabb"-轉化為->"ababa"

#如果遍歷完成的字串中還有,出現值為1的字母,那麼結果長度還要加1才行,因為可以把這個單個字母放在中間,使長度再增加1

return result + 1 if 1 in m.values() else result

每日一題 力扣 計畫

98 驗證二叉搜尋樹 問題給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 1.節點的左子樹只包含小於當前節點的數。2.節點的右子樹只包含大於當前節點的數。3.所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true示例2 輸入 5 1 4...

力扣每日一題 6 14

1300 轉變陣列後最接近目標值的陣列和 給你乙個整數陣列 arr 和乙個目標值 target 請你返回乙個整數 value 使得將陣列中所有大於 value 的值變成 value 後,陣列的和最接近 target 最接近表示兩者之差的絕對值最小 如果有多種使得和最接近 target 的方案,請你返...

每日一題力扣48

給定乙個 n n 的二維矩陣 matrix 表示乙個影象。請你將影象順時針旋轉 90 度。你必須在 原地 旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要 使用另乙個矩陣來旋轉影象。正解 旋轉90度就是,先鏡面對稱,再轉置即可 class solution defrotate self,mat...