提问人:ASD 提问时间:11/12/2023 最后编辑:ASD 更新时间:11/12/2023 访问量:131
反向括号
Reverse Parentheses
问:
我正在做反括号
def reverse_parentheses(s):
"""
Reverse the strings contained in each pair of matching parentheses,
starting from the innermost pair. The results string should not contain
any parentheses.
>>> reverse_parentheses('a(bc)de')
'acbde'
>>> reverse_parentheses(
... 'The ((quick (brown) (fox) jumps over the lazy) dog)'
... )
'The god quick nworb xof jumps over the lazy'
"""
chars = list(s)
open_bracket_indexes = []
for i, c in enumerate(chars):
if c == '(':
open_bracket_indexes.append(i)
elif c == ')':
j = open_bracket_indexes.pop()
chars[j:i] = chars[i:j:-1]
if open_bracket_indexes:
raise ArgumentError('Unclosed parenthesis')
print(''.join(c for c in chars if c not in '()'))
s = input()
reverse_parentheses(s)
描述1 What to do
描述2 What to do
结果,第 10 次测试总是失败
我用了很多算法,它们总是在 10 号失败。 前段时间也有同样的问题: StackOverFlow:似乎是一回事,但在 10th LeetCode 上没有任何工作:源代码和许多其他代码
使用代码:
网络论坛,
leetcode-recursion_based_and_stack_solution, (从字面上看,其他 leetcode 解决方案与以前一样)
90%的原因是“糟糕”的测试,写得不好,只要这个“问题”存在,下面就有这个问题的链接和答案
答:
1赞
Andrej Kesely
11/12/2023
#1
这是使用的解决方案(我在链接的解决方案中没有看到它)。我已经在 leetcode 上进行了测试,它通过了所有测试:re
import re
s = "The ((quick (brown) (fox) jumps over the lazy) dog)"
while True:
new_s = re.sub(r"\(([^)(]*)\)", lambda g: g.group(1)[::-1], s)
if new_s == s:
break
s = new_s
print(s)
指纹:
The god quick nworb xof jumps over the lazy
评论
0赞
ASD
11/12/2023
第 10 次测试仍然失败
2赞
Andrej Kesely
11/12/2023
@ASD 好吧,那么我会质疑测试 - 如果 leetcode 接受它而此页面不接受,则有问题(也许他们提供了错误的输入(?我在代码中没有看到错误(如果输入有效)。
0赞
ASD
11/12/2023
是的,如果仍然什么都没有,也许是里面的问题
0赞
Yuri Ginsburg
11/12/2023
@ASD 第 10 次测试是什么意思?Leetcode 仅提供 4 个针对此问题的测试。
0赞
ASD
11/12/2023
我在 official.contest.yandex.ru 上做,那个测试是由我们教育部开发的,他们选择了这个平台
评论
(
)