leetcode:1897. 重新分配字符使所有字符串都相等(python3解法)
难度:简单
给你一个字符串数组
words
(下标 从 0 开始 计数)。在一步操作中,需先选出两个 不同 下标
i
和j
,其中words[i]
是一个非空字符串,接着将words[i]
中的 任一 字符移动到words[j]
中的 任一 位置上。如果执行任意步操作可以使
words
中的每个字符串都相等,返回true
;否则,返回false
。示例 1:
输入:words = ["abc","aabc","bc"] 输出:true 解释:将 words[1] 中的第一个 'a' 移动到 words[2] 的最前面。使 words[1] = "abc" 且 words[2] = "abc" 。所有字符串都等于 "abc" ,所以返回 true。
示例 2:
输入:words = ["ab","a"] 输出:false 解释:执行操作无法使所有字符串都相等。提示:
1 <= words.length <= 100
1 <= words[i].length <= 100
words[i]
由小写英文字母组成题解:
class Solution: def makeEqual(self, words: List[str]) -> bool: res = [] res_dict = {} s_words = ''.join(words) for i in words: for j in i: if j not in res: res.append(j) for s in res: res_dict[s] = s_words.count(s) values = len(words) for m in res_dict.values(): if m % values !=0: return False return True