Leetcode 1160 . 拼写单词 (2022.03.14)

113 阅读1分钟

大致思路:只要chars中每个字符的数量都大于等于words 中每个word 的每个字符的数量。

第一步: 将 chars 中的每个字母都存入到哈希表中,并进行计数。 将 words 中的每一个单词按照字母 都存入到一个新的哈希表中,也就是一个单词,一个哈希表

第二步: 遍历chars中的每个字符,在两个哈希表中进行该字母数量的比较,判断是否符合条件,如果不符合,可以直接跳出循环,如果那么证明可以拼写出单词,长度增加。

还有一个java 循坏内外的变量的作用域问题

1.png

flag 的问题是有讲究的,如果放在第一个断点处,如果出现了一次匹配不上的情况,那么flag一直都是false,那么你的答案最多就是3。 如果放在第二个断点处,每次匹配word时都会把flag重置为true,就不会出现这种情况。