Gem Stones

Problem Statement

John 發現了很多種岩石。每種岩石都有一個獨一無二成分:由小寫英文字母組成。寶石是由一個單一的字符組成,並且將在所有岩石中出現。

給出一些岩石的成分,輸出有多少種不同的寶石存在。

輸入格式 
第一行包含一個整數 N, 代表岩石的個數 
接下來的N行,每行包含岩石的構成,由小寫的英文字母組成。

輸出格式 
輸出有多少種不同的寶石

數據範圍 
1 ≤ N ≤ 100 
1 ≤ 代表岩石組成的英文單詞長度 ≤ 100

樣例輸入

3
abcdde
baccd
eeabg

樣例輸出

2

樣例解釋 

只有"a", "b"兩種不同的寶石,因爲它們包含在每種岩石的成分中。

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {
    static boolean containsKey(String s,char c){
        for(int i=0;i<s.length();i++){
            if(s.charAt(i)==c)
                return true;
        }
        return false;
    }

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner cin=new Scanner(System.in);
        int n=cin.nextInt();
        String[] s=new String[n];
        for(int i=0;i<n;i++)
            s[i]=cin.next();
        
       //s[0]去重
        Set<Character> set=new HashSet<Character>();
        for(int j=0;j<s[0].length();j++)
            set.add(s[0].charAt(j));
        StringBuffer sb = new StringBuffer();
        for (Object o : set)        
            sb.append(o.toString());
        s[0]=new String(sb); 
       <span style="white-space:pre">	</span>
        int res=0;
        for(int j=0;j<s[0].length();j++){
            int i=1;
            for(i=1;i<n;i++){
                if(!containsKey(s[i],s[0].charAt(j)))
                    break;
            }
            if(i==n)
                res++;
        }
        System.out.println(res);
        
    }
}


發佈了87 篇原創文章 · 獲贊 5 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章