Re: [閒聊] 每日leetcode

作者: sustainer123 (caster)   2024-06-05 20:30:35
※ 引述《JIWP (神楽めあ的錢包)》之銘言:
: 1002. Find Common Characters
: 給一個string array
: 請回傳在每個string都出現過的字元
: 思路:
: 用兩個矩陣
: rec紀錄到目前為止出現過的字元次數
: tmp紀錄目前這個string字元出現的次數
: 當rec[i]>tmp[i],tmp[i]++
: golang code:
: func commonChars(words []string) []string {
: rec:=[26]int{}
: res:=[]string{}
: for _,val:=range words[0]{
: rec[val-'a']++
: }
: for _,val:=range words{
: tmp:=[26]int{}
: for _,char:=range val{
: if rec[char-'a']>tmp[char-'a']{
: tmp[char-'a']++
: }
: }
: rec=tmp
: }
: for key,val:=range rec{
: for i:=0;i<val;i++{
: res=append(res,string('a'+key))
: }
: }
: return res
: }
思路:
沒思路 哈希表紀錄第一個單字 後面硬幹
Python Code:
class Solution:
def commonChars(self, words: List[str]) -> List[str]:
record = defaultdict(int)
result = []
for c in words[0]:
record[c] += 1
for i in range(1,len(words)):
for k in record.keys():
if k in words[i]:
if record[k] > words[i].count(k):
record[k] = words[i].count(k)
else:
record[k] = 0
for k,v in record.items():
if v > 0:
for i in range(v):
result.append(k)
return result
作者: deatheo (逆十字)   2024-06-05 20:34:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com