PAT 1021 个位数统计

来源:互联网 发布:测试耳机的软件 编辑:程序博客网 时间:2024/06/05 18:54

问题描述:

给定一个k位整数N = dk-1*10k-1 + … + d1*101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。

输入格式:

每个输入包含1个测试用例,即一个不超过1000位的正整数N。

输出格式:

对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。

输入样例:

100311

输出样例:

0:21:33:1

提示:

PAT上题目不推荐使用JAVA语言,本题就非常容易超时(我是多次提交后凑巧AC),推荐使用C或C++将其改写。

除此之外,PAT上使用JAVA语言千万不要使用Scanner输入,否则会使得超时问题雪上加霜!!

Code:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main {    public static void main(String[] args) throws IOException {        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        String tmp = br.readLine();        int[] count = new int[10];        for (int i = 0; i < tmp.length(); i++) {            count[tmp.charAt(i) - '0']++;        }        for (int i = 0; i < count.length; i++) {            if (count[i] != 0) {                System.out.println(i + ":" + count[i]);            }        }        br.close();    }}
原创粉丝点击