1. 程式人生 > >(count 或直接枚舉) 統計字符 hdu1860

(count 或直接枚舉) 統計字符 hdu1860

結果 con total miss 出現 ext cin bmi ins

統計字符(很水)

鏈接: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;
}

(count 或直接枚舉) 統計字符 hdu1860