挺有意思的一道题:给出两个只含字符'0'和'1'的字符串,允许对第一个进行如下操作:可以将相邻的两个字符变换:其中'01', '10'和'11'可以两两互换,而'00'只能不变。问能不能通过若干步将第一个字符串转换成第二个。
首先,若两个字符串长度不同,答案肯定是否。然后,由转换条件,我们可以看出只要串中含有至少一个'1',就可以得到除去全为'0'的所有与之同长度任意字符串。
a, b = raw_input(), raw_input()
if len(a) != len(b): print 'NO'
else:
if a.count('1') == 0 and b.count('1') == 0: print 'YES'
elif a.count('1') == 0 or b.count('1') == 0: print 'NO'
else: print 'YES'
还有一个两行代码的版本:
a, b = raw_input(), raw_input()
print ['NO', 'YES'][len(a) == len(b) and ('1' in a) == ('1' in b)]