题目标签:Array, Hash Table
题目给了我们一个string array A,让我们找到common characters。
建立一个26 size 的int common array,作为common characters 的出现次数。
然后遍历每一个 string, 都建立一个 int[26] 的 temp array,来数每个char 出现的次数,当完成了这个str 之后,
把这个temp array 更新到 common 里面去,这里要挑最小的值存入。当完成所有string 之后,common array 里面剩下的,
就是我们要找的常用字符。
具体看code。
Java Solution:
Runtime beats 58.42%
完成日期:03/08/2019
关键点:对于每一个新的string,把common array 里面的次数进行更新,取最小的次数,排除不是 common 的 字符。
class Solution { public ListcommonChars(String[] A) { List result = new ArrayList<>(); int [] commonCharsCount = new int[26]; Arrays.fill(commonCharsCount, Integer.MAX_VALUE); // iterate each string in A for(String str : A) { int [] tempCharsCount = new int[26]; // count char for this string for(char c : str.toCharArray()) tempCharsCount[c - 'a']++; // update the commonCharsCount for(int i=0; i 0) { result.add("" + (char)('a' + i)); commonCharsCount[i]--; } } return result; } }
参考资料:https://leetcode.com/problems/find-common-characters/discuss/?currentPage=1&orderBy=recent_activity&query=
LeetCode 题目列表 -
题目来源:https://leetcode.com/