转自出处


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


<pre name="code" class="java">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>();
				for(int i=0; i < input.length(); i++) {
					char ch = input.charAt(i);
					if (!uniqueCharSet.contains(ch)) {
						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;
		}
	}