標籤:
度熊所居住的 D 國,是一個完全尊重人權的國度。以至於這個國家的所有人命名自己的名字都非常奇怪。一個人的名字由若干個字元組成,同樣的,這些字元的全排列的結果中的每一個字串,也都是這個人的名字。例如,如果一個人名字是 ACM,那麼 AMC, CAM, MAC, MCA, 等也都是這個人的名字。在這個國家中,沒有兩個名字相同的人。
度熊想統計這個國家的人口數量,請協助度熊設計一個程式,用來統計每一個人在之前被統計過多少次。
Input
這裡包括一組測試資料,第一行包含一個正整數NNN,接下來的NNN 行代表了 NNN 個名字。NNN 不會超過100,000100,000100,000,他們的名字不會超過40位.
Output
對於每輸入的一個人名,輸出一個整數,代表這個人之前被統計了多少次。
Sample InputCopy
5ACMMACBBAACMBAB
Sample OutputCopy
01021
這道題目特點就是利用一下排序然後用map (ps 資料結構是個好東西)
對於這個字串的尋找問題 mapp結構是個好東西啊。。
貼上代碼
#include<cstdio>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
bool cmp(char x,char y)
{
return x-y>0;
}
int main()
{
int t,mem[41];
string s;
char rem[41];
map<string,int> fuck;
while(~scanf("%d",&t))
{
int i,j;
for(i=1;i<=t;i++)
{
int sum=0;
cin>>s;
sort(s.begin(),s.end(),cmp);// 對string類型的排序 記好了。。 s.begin() s.end()
if(i==0)
{
printf("0\n");
continue;
}
if(fuck.find(s)!=fuck.end()) fuck[s]++;
else fuck[s]=0;
printf("%d\n",fuck[s]);
}
}
return 0;
}
第二次使用mapp. 資料結構是個好東西。。