給你乙份『詞彙表』(字串陣列) 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思路:依次遍歷陣列中的字串,遍歷這個字串中的字元,在chars中尋找,如果存在就刪除掉第乙個字元,否則返回false。如果遍歷完chars之後還有剩餘字元,則返回true。1 <= words[i].length, chars.length <= 100
所有字串中都僅包含小寫英文本母
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 中你掌握的所有單詞的 長度之...