📅  最后修改于: 2023-12-03 15:26:39.233000             🧑  作者: Mango
给定一个字符串列表和一个整数M,编写一个函数来查找至少重复一个字符的M个字符单词的数量。
def find_words_with_duplicate_chars(words: List[str], M: int) -> int:
pass
words
:字符串列表,包含所有的单词。M
:整数,表示要查找至少重复一个字符的单词的长度。返回一个整数,表示符合条件的单词的数量。
遍历所有单词,对每个单词进行如下处理:
from typing import List
def find_words_with_duplicate_chars(words: List[str], M: int) -> int:
count = 0
for word in words:
if len(word) < M:
continue
char_freq = {}
for char in word:
if char in char_freq:
char_freq[char] += 1
if char_freq[char] > 1:
count += 1
break
else:
char_freq[char] = 1
return count
words = ['apple', 'banana', 'cherry', 'dog', 'elephant', 'fox', 'grape']
M = 4
assert find_words_with_duplicate_chars(words, M) == 4
words = ['apple', 'banana', 'cherry', 'dog', 'elephant', 'fox', 'grape']
M = 5
assert find_words_with_duplicate_chars(words, M) == 3
words = ['a', 'ab', 'abc', 'abcd', 'abcde']
M = 3
assert find_words_with_duplicate_chars(words, M) == 3
words = []
M = 5
assert find_words_with_duplicate_chars(words, M) == 0
本题利用字典来记录字符出现的次数,非常实用。代码实现简单,但是要注意一些细节,比如判断一个单词是否符合条件时,先判断其长度是否大于等于M。