1095 Anigram单词
2018-02-05 17:38
225 查看
1095 Anigram单词
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注
一个单词a如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的Anigram,例如单词army和mary互为Anigram。现在给定一个字典,输入Q个单词,从给出的字典中找出这些单词的Anigram。
Input
第1行:1个数N,表示字典中单词的数量。(1 <= N <= 10000)
第2 - N + 1行,字典中的单词,单词长度 <= 10。
第N + 2行:查询的数量Q。(1 <= Q <= 10000)
第N + 3 - N + Q - 2行:用作查询的单词,单词长度 <= 10。
Output
共Q行,输出Anigram的数量,相同的2个单词不算Anigram,如果没有输出0。
Input示例
5
add
dad
bad
cad
did
3
add
cac
dda
Output示例
1
0
2
巩固一下map和string
关键是要存下排序之前和之后的
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注
一个单词a如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的Anigram,例如单词army和mary互为Anigram。现在给定一个字典,输入Q个单词,从给出的字典中找出这些单词的Anigram。
Input
第1行:1个数N,表示字典中单词的数量。(1 <= N <= 10000)
第2 - N + 1行,字典中的单词,单词长度 <= 10。
第N + 2行:查询的数量Q。(1 <= Q <= 10000)
第N + 3 - N + Q - 2行:用作查询的单词,单词长度 <= 10。
Output
共Q行,输出Anigram的数量,相同的2个单词不算Anigram,如果没有输出0。
Input示例
5
add
dad
bad
cad
did
3
add
cac
dda
Output示例
1
0
2
巩固一下map和string
关键是要存下排序之前和之后的
#include<iostream> #include<map> #include<cstring> #include<algorithm> using namespace std; map <string,int> str1,str2; string str,temp; int main() { int n; cin>>n; for (int i=0;i<n;i++) { cin>>str; str1[str]++; sort(str.begin(),str.end()); str2[str]++; } cin>>n; for (int i=0;i<n;i++) { cin>>str; temp=str; sort(str.begin(),str.end()); cout<<str2[str]-str1[temp]<<endl; } return 0; }
相关文章推荐
- 51Nod 1095 Anigram单词 map
- [51Nod](1095)Anigram单词 ---- Hash(map)+排序
- 51nod 1095 Anigram单词
- 1095 Anigram单词
- 51 NOD 1095 Anigram单词
- 51NOD 1095 Anigram单词
- 51nod 1095 Anigram单词
- 51nod 1095 Anigram单词
- 51nod 1095 Anigram单词 【map的使用】
- 51nod-1095 Anigram单词
- 51nod 1095 Anigram单词
- 1095 Anigram单词(51nod)
- 51nod-1095 Anigram单词
- 51nod 1095 Anigram单词 (map——multiset结合)
- 51 nod 1095 Anigram单词 利用map处理hash问题
- 51nod oj 1095 Anigram单词【map】
- 51nod 1095 Anigram单词
- 51NOD 1095 Anigram单词
- 51Nod 1095 Anigram单词 | Hash
- 51Nod 1095 Anigram单词