0
已解决
董妙一
资深守护
资深守护
题目描述 Description
明明和聪聪是**,看着聪聪整天在他面前摆弄着那块神奇的镜片,明明有点生气,总想找个机会挫挫他的锐气,但是为了不**他们之间的友谊,明明给聪聪出了一道难题,题目是这样的:
明明在学习英语的时候发现记单词是一件很痛苦的事,因为这些单词都杂乱无章,于是明明决定对单词进行分类。两个单词可以分为一类当且仅当组成这两个单词的各个字母的数量均相等,例如“AABAC”,它和“CBAAA”就可以归为一类,而和“AAABB”就不是一类。现在有N个单词,所有单词均由大写字母组成,每个单词的长度不超过100。请你告诉明明这些单词会被分成几类。
输入描述 Input Description
输入文件的第一行为单词个数N,以下N行每行一个单词。
【数据范围】
对于70%的数据满足N≤100;
对于100%的数据满足N≤550。
输出描述 Output Description
输出文件仅包含一个数,表示这N个单词分成的类数。
样例输入 Sample Input
3 AABAC CBAAA AAABB
样例输出 Sample Output
2
0
已采纳
李子杰
资深光能
资深光能
定义 计数器,字符串数组;
定义n,并输入
getchar吸收换行
for(1~n){
getline输入字符串数组
sort(字符串.begin(),字符串.end());
}
for(1~n){
定义标志位赋值0
for(i+1~n){
if(i不等于j 且 a[i]等于a[j]){
标志位为1
}
}
if(标志位为0){
计数器+1
}
}
输出计数器
1
李奕歌
初级天翼
初级天翼
for(int i=1;i<=n;i++){
cin>>a[i];
sort(a[i].begin(),a[i].end());
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
if(judge(i)) cnt++;
}
bool judge(int x){
for(int i=1;i<x;i++){
if(a[i]==a[x]){//计算过了
return false;
}
}
return true;
}
0
0
张清岩
资深守护
资深守护
bool f(int x){
for(int i=1;i<x;i++){
if(a[x]==a[i]){
return false;
}
}
return true;
}
for(int i=1;i<=n;i++){
cin>>a[i];
sort(a[i].begin(),a[i].end());
}
0
武奕楷
新手天翼
新手天翼
提示:
sort(a[i].begin(),a[i].end());
武奕楷在2021-08-09 17:05:17追加了内容
a[i]是字符串
0
0
0
王文博
缔造者之神
缔造者之神
核心:
for(int i=1;i<=n;i++)
{
cin>>a[i];
sort(a[i].begin(),a[i].end());
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
if(judge(i)) cnt++;
}
cout<<cnt;
judge()函数是关键点,可以自己想想
0
0