cdoj 71 I am Lord Voldemort 水题
I am Lord Voldemort
Time Limit: 20 Sec Memory Limit: 256 MB
题目连接
http://acm.uestc.edu.cn/#/problem/show/71
Description
f you have ever read Harry Potter, you would know that the evil and powerful wizard, Lord Voldemort, create this name by permuting his original name, Tom Marvolo Riddle, to I am Lord Voldemort.
Write a program to check whether it is possible to transform a given word to another by permuting its letters.
The length of any given word is greater than 0 and no larger than 50.
Input
The first line is an integer T, the number of test cases. Following T lines each contains two words separated by spaces.
Output
For each test case, Output on a line Yes if it is possible to do the transformation, otherwise output No instead.
Permuting a word is to change the order of its letters, but no new letters can be added and no original letters can be deleted. For example, one can transform aabc to abca, but not to bac, abc, aabca, aacbb.
Words will contain letters only(a-z, A-Z).
A word won't contain any white spaces in itself.
The given two words will not be the same.
You should ignore case when comparing words, i.e. a is the same as A, b is the same as B, etc.
Sample Input
4
TomMarvoloRiddle IamLordVoldemort
stop pots
abbc bac
InternetAnagramServer IRearrangementServant
Sample Output
YesYes
No
Yes
HINT
题意
题解:
傻逼题
代码:
//qscqesze #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <queue> #include <typeinfo> #include <fstream> #include <map> #include <stack> typedef long long ll; using namespace std; //freopen("D.in","r",stdin); //freopen("D.out","w",stdout); #define sspeed ios_base::sync_with_stdio(0);cin.tie(0) #define test freopen("test.txt","r",stdin) #define maxn 200000 #define mod 10007 #define eps 1e-9 int Num; char CH[20]; const int inf=0x3f3f3f3f; const ll infll = 0x3f3f3f3f3f3f3f3fLL; inline ll read() { ll x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } inline void P(int x) { Num=0;if(!x){putchar('0');puts("");return;} while(x>0)CH[++Num]=x%10,x/=10; while(Num)putchar(CH[Num--]+48); puts(""); } //************************************************************************************** string s1,s2; map<char,int> H; int main() { //test; int t=read(); while(t--) { H.clear(); cin>>s1>>s2; for(int i=0;i<s1.size();i++) { if(s1[i]>='A'&&s1[i]<='Z') s1[i]=s1[i]-'A'+'a'; H[s1[i]]++; } int flag=1; if(s1.size()!=s2.size()) flag=0; for(int j=0;j<s2.size();j++) { if(s2[j]>='A'&&s2[j]<='Z') s2[j]=s2[j]-'A'+'a'; if(!flag) break; if(!H[s2[j]]) { flag=0; break; } else H[s2[j]]--; } if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; } }