这种换字符类型的题目,以前好像做过一次,还是没想出来,汗啊,主要就是如何证明字符数字大于3的时候的奇偶性相同则可以,字符数为2的时候模拟过程就好。
#include<iostream>
#include<string>
using namespace std;
bool find(string s1, string s2)
{
char s;
int i;
for(i = 1; i <= 26; ++i)
{
s = s1[0];
s1[0] = s1[1];
s1[1] = s;
if(s1[0] == 'z') s1[0] = 'a';
else s1[0]++;
if(s1[1] == 'z') s1[1] = 'a';
else s1[1]++;
if(s1[0] == s2[0] && s1[1] == s2[1]) return true;
}
return false;
}
int main()
{
int n, i, p, k, t;
string s1, s2;
while(cin>>n)
{
p = 1;
while(n--)
{
cin>>s1>>s2;
if(s1.length() == 2)
{
if(find(s1,s2) == 1) cout<<"Case #"<<p<<": YES"<<endl;
else cout<<"Case #"<<p<<": NO"<<endl;
}
else
{
t = 0;
for(i = 0; i < s1.length(); ++i)
{
k = s1[i]-'a';
t = t^k;
}
for(i = 0; i < s2.length(); ++i)
{
k = s2[i]-'a';
t = t^k;
}
if((t&1) == 0) cout<<"Case #"<<p<<": YES"<<endl;
else cout<<"Case #"<<p<<": NO"<<endl;
}
p++;
}
}
return 0;
}