《去哪网编程题》统计字符

题目描述
给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符。

输入描述:
输入数据一个字符串,包括字母,数字等。

输出描述:
输出首先出现三次的那个英文字符

示例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());
        }

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值