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
时间: 2024-10-13 08:11:35