(count 或直接枚举) 统计字符 hdu1860

统计字符(很水)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1860

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 12731    Accepted Submission(s):
7918

Problem Description

统计一个给定字符串中指定的字符出现的次数

Input

测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串。注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一。当读到‘#‘时输入结束,相应的结果不要输出。

Output

对每个测试用例,统计第1行中字符串的每个字符在第2行字符串中出现的次数,按如下格式输出:
c0
n0
c1 n1
c2 n2
...
其中ci是第1行中第i个字符,ni是ci出现的次数。

Sample Input

I

THIS IS A TEST

i ng

this is a long test string
#

Sample Output

I 2

i 3

5

n 2

g 2

注:第2个测试用例中,空格也是被统计的字符之一。

JAVA代码:由于在JAVA的API中没有count的,所以直接写了返回值为int类型的count类,不过没有超时,合格的。

import java.util.Scanner;

public class Main {
    public static int count(char c,String string) {
        int num = 0;
        for(int i = 0;i < string.length();i++) {
            if(c == string.charAt(i)) {
                num++;
            }
        }
        return num;
    }
    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner inScanner = new Scanner(System.in);
        while(inScanner.hasNext()) {
            String string = inScanner.nextLine();
            if(string.equals("#")) {
                break;
            }
            else {
                String string2 = inScanner.nextLine();
                for(int i = 0 ;i<string.length();i++) {
                    System.out.println(string.charAt(i) + " " + count(string.charAt(i), string2));
                }
            }
        }
    }
}

C++的count():

#include<iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
    string a,b;
    while(getline(cin,a))
    {
        if(a=="#")
            break;
        getline(cin,b);
        int len=a.length();
        for(int i=0;i<len;i++)
        {
            int sum=count(b.begin(),b.end(),a[i]);
            printf("%c %d\n",a[i],sum);
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/Weixu-Liu/p/9656462.html

时间: 2024-10-16 00:05:31

(count 或直接枚举) 统计字符 hdu1860的相关文章

九度OJ 1021 统计字符 (模拟)

题目1021:统计字符 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4601 解决:2705 题目描述:     统计一个给定字符串中指定的字符出现的次数. 输入:     测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串.注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一.当读到'#'时输入结束,相应的结果不要输出. 输出:     对每个测试用例,统计第1行中字符串的每个字符在第2行字符串中出现的次数

统计字符出现次数

如何统计字符串中每个字符出现的次数,这类题遇到过很多次,下面就来谢谢解决思路: 可采用HashMap来解决,HashMap存储的是键值对,即key-value;每个key对应一个value值,利用这个特性,可以将字符看为key,value看做字符出现的次数,这样就可以很好地解决这个问题,下面给出详细代码: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 import java.u

C语言统计字符数

一段统计字符数的代码及分析. 先贴代码: #include<stdio.h> #include<string.h>//提供memset函数原型. int main() { char S[80]; int C[26],length;//一段声明,即字符数组S,整型数组C,和整型length. memset(C,0,sizeof(C));//将C清零,至于为什么不把字符数组清零,稍后有一段实验过程. for(int i=0;i<=3;i++)//循环4次,读入4行字符串. { g

29:统计字符数

29:统计字符数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多. 输入 输入包含一行,一个字符串,长度不超过1000. 输出 输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开.如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符. 样例输入 abbccc 样例输出 c 3 来源 1744 1 #include<iostream> 2 #

统计字符(杭电1860)

/*统计字符 Problem Description 统计一个给定字符串中指定的字符出现的次数 Input 测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串.注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一.当读到'#'时输入结束,相应的结果不要输出. Output 对每个测试用例,统计第1行中字符串的每个字符在第2行字符串中出现的次数,按如下格式输出: c0 n0 c1 n1 c2 n2 ... 其中ci是第1行中

Hdu 1860 统计字符

统计字符 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11529    Accepted Submission(s): 7195 Problem Description 统计一个给定字符串中指定的字符出现的次数 Input 测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字

统计字符次数

输入一个字符串(长度在100以内),统计其中数字字符出现的次数. 样例输入 Ab100cd200 样例输出 6 #include"stdio.h" int main() { char a[100]; int i; int sum=0; scanf("%s",a); for(i=0;a[i]!='\0';i++) if(a[i]>='0'&&a[i]<='9') sum++; printf("%d",sum); retu

(c语法百题22)统计字符

知识点: 数组的运用,结合循环 getchar()的用法 注意:对于数组a[1000],没有a=getchar()然后就把字符一个一个装进数组里面,这是错误的. 还有scanf("%s”,a);也不是正确的. 内容: 输入若干个字符(以‘#'作为结束),计算输入的字符中字母‘a'或‘A’出现的次数. 输入说明: 一行若干个字符. 输出说明: 一个整数,为a或者A字符出现次数和. 输入样例: abcdefABCDEFaaAA# 输出样例 : 6 1 #include <stdio.h>

[汇编] 统计字符

1 ;编写一个有主程序和子程序结构的程序模块. 2 ;子程序的参数是一个N字节数组的首地址TABLE,数N及字符CHAR. 3 ;要求在N字节数组中查找字符CHAR,并记录该字符出现的次数. 4 ;主程序则要求从键盘接收一串字符以建立字节数组TABLE, 5 ;并逐个显示从键盘输入的每个字符CHAR以及它在TABLE数组中出现的次数. 6 ;(为简化起见,假设出现次数≤15,可以用16进制形式把它显示出来.) 7 8 data segment 9 table db 255 dup(0) 10 n