我通过以下方法尝试了here中提到的Google Kickstart回合C倒数问题:
m m-1 m-2 …1
导出为另一个以空格分隔的字符串。但是,我在实践中遇到了WA (Wrong Answer), test set skipped
。
这是我在python-3
中的代码。
t = int(input())
for i in range(t):
case_num = i + 1
n, k = [int(x) for x in input().split(" ")]
# The blank spaces around the input str a and substr_k should deal with cases like [3,2,13]
a = " " + " ".join([str(int(x)) for x in input().split(" ")]) + " "
substr_k = " " + " ".join(str(i) for i in reversed(range(1, k+1))) + " "
print("Case #{}: {}".format(case_num, a.count(substr_k)))
请注意,我知道分析中提到的方法显然是一种更好的方法,并且我已经理解了,但是,我仍在努力弄清楚上面懒惰的代码在哪里出了错。由于我无权访问Google
分级代码所用的实际案例,因此有人可以帮助我吗?只需返回一个不良输出的简单情况就可以知道我哪里出错了。
编辑:考虑到@liju的建议,我在代码中更改了第6行,以更好地适应以0开头的数字的情况
答案 0 :(得分:1)
举一个示例:
String =“ abcbabcba”
String.count(“ abcba”)
这将返回1。
但是“ abcba”的数量是2。
您的代码存在相同的问题:
输入:
1
6 3
3 2 1 3 2 1
输出:
1
预期输出:
2
说明:
代码正在使用计数功能查找“ 3 2 1”的计数,这些计数具有返回值1。