📌  相关文章
📜  在Python中使用给定字符的可能单词

📅  最后修改于: 2022-05-13 01:55:11.986000             🧑  作者: Mango

在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中解决这个问题。方法很简单:

  1. 一一遍历给定字符串的列表,并使用集合模块的 Counter(input) 方法将它们转换为字典。
  2. 检查任何字符串的所有键是否都在给定的字符集中,这意味着可以创建该单词。
# 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