給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。
在構造過程中,請注意區分大小寫。比如 "aa" 不能當做乙個回文字串。
注意:假設字串的長度不會超過 1010。
示例 1:
輸入:"abccccdd"
輸出:7
**:
class solution:
def longestpalindrome(self, s: str) -> int:
a=collections.counter(s)
num=0
count=0
if len(a)==1:
return len(s)
for i in a:
if a[i]%2==0:
num+=a[i]
elif a[i]>1:
num+=a[i]-1
count=1
else:
count=1
return num+count if len(s)!=0 else 0
大神**:
class solution:
def longestpalindrome(self, s):
ans = 0
count = collections.counter(s)
for v in count.values():
ans += v // 2 * 2
if ans % 2 == 0 and v % 2 == 1:
ans += 1
return ans
兩數之和
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
示例:給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
思路:用兩層for迴圈超時,方法是遍歷nums,用乙個雜湊表(字典)來儲存nums中不滿足target-nums[i]==雜湊表.key的值與下標
例:nums=[3,2,4],target=6
遍歷到3時,檢測字典裡是否存在6-3這個值。因為是第一次字典是空的,於是把存入字典
遍歷到2時,檢測字典裡是否存在6-2這個值。字典裡沒有,於是把存入
遍歷到4時,檢測字典裡是否存在6-4這個值。字典裡存在,於是把與這個nums[3]=4的下標增加到列表當中返回
**
#兩數之和
class solution:
def twosum(self, nums, target):
a=ha={}
b=0for i in range(len(nums)):
for j in list(ha.keys()):
if target-nums[i]==j:
return a
ha[nums[i]]=i
a=solution()
nums = [3,2,4]
target = 6
print(a.twosum(nums,target))
LeetCode 每日一題 409 最長回文串
給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長度是 7。先來看...
高校考勤簽到系統php,php實現每日簽到功能
首次簽到獲得1個積分,第二次簽到獲得2個積分,第三次簽到獲得3個積分,以此類推但是簽到必須每天連續積分才可以遞增,如果有中斷再次簽到時獲得積分仍然從1開始遞增 簽到 function datatype json success function res else count 1 point 1 si...
js php 實現日曆簽到 js實現每日簽到功能
js var calutil else 內層for語句結束 document.write 外層for語句結束 單元格的自然序號是否代表有效日期非常關鍵,為此必須加入乙個過濾機制 僅列印有效的日期。有效的日期大於0小於小於等於處理月的總天數。三.以下是完整的js日曆 function is leap ...