题目描述
给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符。
输入描述:
输入数据一个字符串,包括字母,数字等。
输出描述:
输出首先出现三次的那个英文字符
示例1
输入
Have you ever gone shopping and
输出
e
解析:假如你想用暴力搜索法做,估计可以的。此题还有优雅点的解法。思路:由于只是统计首次出现3次的字符,而由于每次字符的ascil码都不会超过256,那么可以用一个数组来记录字符出现情况,每次出现一个字符就自动+1,而且判断当前的字符次数为3就返回。
import java.util.Scanner;
public class Main {
public static void findAppearThreeTimes(String s){
int [] hash = new int[256];//用一个数组记录字符出现的情况
for(int i=0;i<s.length();i++){
char temp=s.charAt(i);
if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z')){
hash[temp]++;
if(3==hash[temp]){
System.out.println(temp);
return;
}
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
findAppearThreeTimes(scanner.nextLine());
}
}
}