LeetCode每日一題 拼寫單詞

2021-10-04 01:48:20 字數 1960 閱讀 4565

給你乙份『詞彙表』(字串陣列) words 和一張『字母表』(字串) chars。

假如你可以用 chars 中的『字母』(字元)拼寫出 words 中的某個『單詞』(字串),那麼我們就認為你掌握了這個單詞。

注意:每次拼寫時,chars 中的每個字母都只能用一次。

返回詞彙表 words 中你掌握的所有單詞的 長度之和。

示例 1:

輸入:words = [「cat」,「bt」,「hat」,「tree」], chars = 「atach」

輸出:6

解釋:可以形成字串 「cat」 和 「hat」,所以答案是 3 + 3 = 6。

示例 2:

輸入:words = [「hello」,「world」,「leetcode」], chars = 「welldonehoneyr」

輸出:10

解釋:可以形成字串 「hello」 和 「world」,所以答案是 5 + 5 = 10。

1 <= words.length <= 1000

1 <= words[i].length, chars.length <= 100

所有字串中都僅包含小寫英文本母

思路:依次遍歷陣列中的字串,遍歷這個字串中的字元,在chars中尋找,如果存在就刪除掉第乙個字元,否則返回false。如果遍歷完chars之後還有剩餘字元,則返回true。

class

solution

:def

m(self, chars1:

str, chars2:

str)

->

bool

:for i in chars1 :

t = chars2.find(i)

if t >=0:

#print(i)

chars2 = chars2.replace(i,"",

1)else

:return

false

iflen

(chars2)

>=0:

return

true

return

false

defcountcharacters

(self, words: list[

str]

, chars:

str)

->

int:

num =

0for s in words:

temp = chars

#print(s)

if self.m(s, temp)

: num = num+

len(s)

return num

思路:遍歷words陣列,對於其中的每乙個字串a,遍歷chars中的每個字元分別在a中和chars**現的數目,如果後者較大,則設flag為1,代表能夠拼出a單詞,否則記為0,表示不能包含此單詞。最終累加長度。

class

solution

(object):

defcountcharacters

(self, words, chars)

: ans =

0for w in words:

for i in w:

if w.count(i)

<= chars.count(i)

: flag =

1continue

else

: flag =

0break

if flag ==1:

ans+=

len(w)

return ans

Leetcode 拼寫單詞 每日一題

拼寫單詞 題意 給你乙份 詞彙表 字串陣列 words 和一張 字母表 字串 chars。假如你可以用 chars 中的 字母 字元 拼寫出 words 中的某個 單詞 字串 那麼我們就認為你掌握了這個單詞。注意 每次拼寫時,chars 中的每個字母都只能用一次。返回詞彙表 words 中你掌握的所...

LeetCode每日一題 1160 拼寫單詞

給你乙份 詞彙表 字串陣列 words 和一張 字母表 字串 chars。假如你可以用 chars 中的 字母 字元 拼寫出 words 中的某個 單詞 字串 那麼我們就認為你掌握了這個單詞。注意 每次拼寫時,chars 中的每個字母都只能用一次。返回詞彙表 words 中你掌握的所有單詞的 長度之...

每日一題 單詞拼寫

給你乙份 詞彙表 字串陣列 words 和一張 字母表 字串 chars。假如你可以用 chars 中的 字母 字元 拼寫出 words 中的某個 單詞 字串 那麼我們就認為你掌握了這個單詞。注意 每次拼寫時,chars 中的每個字母都只能用一次。返回詞彙表 words 中你掌握的所有單詞的 長度之...