Given an array A
of strings made only from lowercase letters, return a list of all characters that show up in all strings within the list (including duplicates). For example, if a character occurs 3 times in all strings but not 4 times, you need to include that character three times in the final answer.
You may return the answer in any order.
Example 1:
Input: ["bella","label","roller"]
Output: ["e","l","l"]
Example 2:
Input: ["cool","lock","cook"] Output: ["c","o"]
class Solution { public List<String> commonChars(String[] A) { List<String> res = new ArrayList<>(); if (A == null || A.length == 0) { return res; } int[] lowerCaseArr = new int[26]; for (char c: A[0].toCharArray()) { lowerCaseArr[c - 'a'] += 1; } for (int i = 1; i < A.length; i++) { int[] curDict = new int[26]; for (char c: A[i].toCharArray()) { curDict[c - 'a'] += 1; } for (int j = 0; j < lowerCaseArr.length; j++) { lowerCaseArr[j] = Math.min(lowerCaseArr[j], curDict[j]); } } for (int i = 0; i < lowerCaseArr.length; i++) { while (lowerCaseArr[i] > 0) { res.add(Character.toString((char)(i + 'a'))); lowerCaseArr[i] -= 1; } } return res; } }