標籤:
Write a program that gives count of common characters presented in an array of strings..(or array of character arrays)
For eg.. for the following input strings..
aghkafgklt
dfghako
qwemnaarkf
The output should be 3. because the characters a, f and k are present in all 3 strings.
Note: The input strings contains only lower case alphabets
public int getNumOfCommonChars(String[] inputs) { // Return 0 if null / empty input or only one string is provided if(inputs == null || inputs.length < 2) { return 0; } else { //create an int array to hold # times character appears int[] charCounts = new int[256]; for(String input : inputs) { Set<Character> uniqueCharSet = new HashSet<Character>(); //對於每個String,都建立一個HashSet for(int i=0; i < input.length(); i++) { char ch = input.charAt(i); if (!uniqueCharSet.contains(ch)) { //沒有charCounts才加,有就不加,用來保證一個String裡重複的char不被數到。 uniqueCharSet.add(ch); charCounts[(int) ch] += 1; } } } int commonCharCount = 0; for (int i=0; i < 256; i++) { if (charCounts[i] == inputs.length()) { commonCharCount++; } } return commonCharCount; } }
reference:
http://www.careercup.com/question?id=6283084039192576
*Common characters