我解决了 Hackerearth 中的二进制字符串问题下面的问题,问题是“给定四个整数 x、y、a 和 b。确定是否存在具有 x 0 和 y 1 的二进制字符串,使得子序列的总数等于其中序列“01”为a,与序列“10”相等的子序列总数为b。” " 使用以下代码对示例测试用例进行逆向工程:
import sys
s = sys.stdin.read()
for i in s.split('\n'):
string = i.split(' ')
if len(string) != 4:
print('')
else:
x,y,a,b = string
x = int(x)
y = int(y)
a = int(a)
b = int(b)
if (x*y == a+b):
print('Yes')
else:
print('No')
社论中提供的解释是如果x*y==a+b,那么它就是这样一个二进制字符串存在,我也想出了逆向工程测试用例,但我真的无法满足条件。
给出的示例之一是 x、y、a 和 b 分别为 3、2、4 和 2,其中字符串 00110 是有效字符串,因为 3*2=4+2。
但是 ** 00110 有 01 和 10 它是如何拥有的,所以 01 的数量不等于“a”,而 10 的数量不等于“b”。我错过的问题是否有任何逻辑或任何其他方面?**
您可以参考实际问题链接以获取更多详细信息