Find Common Characters
找到n个string之间的共享字符. 既然是共享毕竟每两个都有. 所以先count一个string的字符, 然后算min找到共享.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
class Solution { public List<String> commonChars(String[] A) { List<String> res = new ArrayList<String>(); int[] count = count(A[0]); // count first string for(int j = 1 ; j < A.length; j++) { int[] c = count(A[j]); for(int i = 0; i < 26; i++) { count[i] = Math.min(c[i], count[i]); //find the min of current count and new string count } } for(int i = 0 ; i < 26; i++) { // output if(count[i] != 0){ for(int j = 0; j < count[i]; j++){ res.add(String.valueOf((char)(i + 'a'))); } } } return res; } private int[] count(String s) { // count number of char in string int[] res = new int[26]; for(int i = 0; i < s.length(); i++) { res[s.charAt(i) - 'a'] ++; } return res; } } |