*Common characters

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

posted @ 2016-01-23 08:44  Hygeia  阅读(203)  评论(0编辑  收藏  举报