ID | Title | Difficulty | |
---|---|---|---|
Loading... |
1002. Find Common Characters
Easy
LeetCode
Array, Hash Table, String
Problem
Given an array words 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"]
Code
class Solution {
public List<String> commonChars(String[] words) {
int[] dict = build(words[0]);
for(int i = 1; i < words.length; i++) {
String word = words[i];
int[] curr = build(word);
for(int j = 0; j < 26; j++) {
dict[j] = Math.min(dict[j], curr[j]);
}
}
List<String> res = new ArrayList<>();
for(int i = 0; i < 26; i++) {
if(dict[i] != 0) {
int count = dict[i];
String letter = Character.toString('a' + i);
for(int j = 0; j < count; j++) {
res.add(letter);
}
}
}
return res;
}
private int[] build(String s) {
int[] dict = new int[26];
for(char c : s.toCharArray()) {
dict[c - 'a']++;
}
return dict;
}
}
按 <- 键看上一题!
1001. Grid Illumination
按 -> 键看下一题!
1004. Max Consecutive Ones III *