【发布时间】:2022-01-21 16:46:05
【问题描述】:
基本上,我得到了两行输入。第一行是第二行输入中呈现的子串的整数长度,仅由 Gs 和 Hs 组成,类似于 0s 和 1s。
N = int(input())
chars = list(input())
lonely = 0
for i in range(3, N + 1):
for j in range(N - i + 1):
if ((chars[j:j + i].count('G') == 1) or (chars[j:j + i].count('H') == 1)):
lonely += 1
print(lonely)
一个示例输入是:
5
GHGHG
答案是3:答案是原始字符串的长度为3或更大且只有一个G或一个H的子串的数量(这个G或H是'孤独的'),对于上述样例中,满足该条件的子串为chars[0:3]、chars[1:4]、chars[2:5]。虽然我认为这在技术上是正确的,但对 N 没有任何限制,因此我对 N = 5000 等的测试用例超时(每个测试用例的时间限制为 4 秒)。
我该如何解决这个问题?
谢谢!
【问题讨论】:
-
顺便说一句,这是从哪里来的?