在Python中使用给定字符的可能单词
给定一个字典和一个字符数组,打印所有可能使用数组中字符的有效单词。
注意:字符不允许重复。
例子:
Input : Dict = ["go","bat","me","eat","goal","boy", "run"]
arr = ['e','o','b', 'a','m','g', 'l']
Output : go, me, goal.
此问题有现有解决方案,请参考 Print all valid words that are possible using 字符 of Array 链接。我们将使用字典数据结构非常快速地在Python中解决这个问题。方法很简单:
- 一一遍历给定字符串的列表,并使用集合模块的 Counter(input) 方法将它们转换为字典。
- 检查任何字符串的所有键是否都在给定的字符集中,这意味着可以创建该单词。
# Function to print words which can be created
# using given set of characters
def charCount(word):
dict = {}
for i in word:
dict[i] = dict.get(i, 0) + 1
return dict
def possible_words(lwords, charSet):
for word in lwords:
flag = 1
chars = charCount(word)
for key in chars:
if key not in charSet:
flag = 0
else:
if charSet.count(key) != chars[key]:
flag = 0
if flag == 1:
print(word)
if __name__ == "__main__":
input = ['goo', 'bat', 'me', 'eat', 'goal', 'boy', 'run']
charSet = ['e', 'o', 'b', 'a', 'm', 'g', 'l']
possible_words(input, charSet)
输出:
go
me
goal