• (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
    ",a[i],sum);
            }
        }
        return 0;
    }
  • 相关阅读:
    UVA 10618 Tango Tango Insurrection
    UVA 10118 Free Candies
    HDU 1024 Max Sum Plus Plus
    POJ 1984 Navigation Nightmare
    CODEVS 3546 矩阵链乘法
    UVA 1625 Color Length
    UVA 1347 Tour
    UVA 437 The Tower of Babylon
    UVA 1622 Robot
    UVA127-"Accordian" Patience(模拟)
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/9656462.html
Copyright © 2020-2023  润新知