1. 程式人生 > 實用技巧 >問題 D: 單詞分類

問題 D: 單詞分類

問題 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;


}