0

我解决了 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”。我错过的问题是否有任何逻辑或任何其他方面?**

您可以参考实际问题链接以获取更多详细信息

4

0 回答 0