力扣題目學習 拼寫單詞

2021-10-04 01:46:16 字數 1413 閱讀 9402

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

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

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

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

**一:

class

solution

:def

countcharacters

(self, words: list[

str]

, chars:

str)

->

int:

ans =

0 cnt = collections.counter(chars)

for w in words:

c = collections.counter(w)

ifall

([c[i]

<= cnt[i]

for i in c]):

ans +=

len(w)

return ans

collections.counter是統計列表元素出現次數。

在for迴圈中,w為每次迴圈的字串,在例二中,第一次迴圈w為hello,第二次為world,第三次為leetcode。

第一次迴圈中,c是對「hello」這個字串的每個單詞的個數進行標註,例如c[0]就表示h值為1,c[1]就表示e值為1,c[2]就表示l值為2,c[3]就表示o值為1。

**二:

class

solution

:def

countcharacters

(self, words: list[

str]

, chars:

str)

->

int:

sum=

0for i in words:

k =len(i)

m =0for j in i:

if i.count(j)

<= chars.count(j)

: m +=

1if m == k:

sum+= k

return

sum

在第一次迴圈中i為「hello」字串,k為字串的長度為5。

在內迴圈中,j是i字串中的每個字母。

對於第乙個內迴圈,判斷如果i字串中,h字母出現的次數如果小於chars字串中h字母出現的次數,則m自加1,以此迴圈。

力扣活動0317 1160 拼寫單詞

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

力扣題目總結

135.分發糖果 根據規則只需要滿足每個人至少有乙個糖果,且前乙個的評分如果比後乙個高就需要它的糖果更多 但是只有一遍的話會出現bug,因為每次對比可能會使自身糖果數發生改變從而導致前乙個的糖果數不準確,此時我們需要從後往前再來一遍再進行一次遍歷修正。intcandy int ratings,int...

力扣79 單詞搜尋

給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 board a b c e s f c s a d e e 給定 word abcced 返回 ...