問題 D: 單詞分類
阿新 • • 發佈:2020-11-01
問題 D: 單詞分類
時間限制: 1 Sec記憶體限制: 128 MB提交 狀態
題目描述
本學期小明學習了很多新單詞,為了將本學期的新單詞整理有序,小明想按單詞的第一個字母將新單詞分類(不區分大小寫)。這樣他就可以方便找到他的新單詞。由於單詞的數量比類多,現在就請你來幫小明完成這個任務。
輸入
輸入資料有若干行。第一行,是一個整數n(0<n<=100000),表示新單詞的個數。
接下來有n行由大寫或小寫字母組成的字串,長度小於10。
輸出
輸出資料有輸入資料有若干行。第一行輸出這n個單詞一共有多少類。
接下來每行輸出一個大寫字母,和一個整數,表示以這個字母開頭的新單詞的個數。
樣例輸入 Copy
5
aabe
Bace
Fgbeg
bedgd
Aibed
樣例輸出 Copy
3
A 2
B 2
F 1
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j,count,m,k;
char a[100000][15],b[100000];
scanf("%d",&n);
for(i=0;i<=n-1;i++)
{
scanf("%s",a[i]);
if(a[i][0]>='a'&&a[i][0]<='z') a[i][0]=a[i][0]-32;
b[i]=a[i][0];
}
sort(b,b+n);
m=0;k=1;
while(k<n)
{
if(b[k]!=b[m]) b[++m]=b[k];
k++;
}
b[++m]=0;
printf("%d\n",m);
for(i=0;i<m;i++)
{ count=0;
for(j=0;j<=n-1;j++)
{
if((b[i]==a[j][0]))
count++;
}
printf("%c %d\n",b[i],count);
}
return 0;
}