hdu 1251 統計難題 初識map
來源:程序員人生 發布時間:2014-10-18 08:00:01 閱讀次數:3033次
Problem Description
Ignatius最近遇到一個難題,老師交給他很多單詞(只有小寫字母組成,不會有重復的單詞出現),現在老師要他統計出以某個字符串為前綴的單詞數量(單詞本身也是自己的前綴).
Input
輸入數據的第一部分是一張單詞表,每行一個單詞,單詞的長度不超過10,它們代表的是老師交給Ignatius統計的單詞,一個空行代表單詞表的結束.第二部分是一連串的提問,每行一個提問,每個提問都是一個字符串.
注意:本題只有一組測試數據,處理到文件結束.
Output
對于每個提問,給出以該字符串為前綴的單詞的數量.
Sample Input
banana
band
bee
absolute
acm
ba
b
band
abc
Sample Output
2
3
1
0
代碼:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int m,n,i,j,s;
char a;
string q;
map<string,int>w;
while(1)
{
scanf("%c",&a);
if(a=='
')
{
scanf("%c",&a);
q="";
}
if(a=='
')
break;
q=q+a; //string類型 的功能
w[q]++;
}
while(cin>>q)
{
cout<<w[q]<<endl;
}
return 0;
}
短短二十幾行搞定一道字典樹的題目 足以說明STL功能的強大
map 提供 兩種類型的映射功能 也就是映射的一邊為數組下標 另一邊則是數組的值
然后出現相同前綴時累加即可
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈