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