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