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);
}
}