ACM Q272:TeX Quotes题目代码求助,本地测试正确但OJ判错
ACM Q272: TeX Quotes 问题排查
正在解决ACM的Q272:TeX Quotes题目,本地测试代码运行正确,但在线评测系统(OJ)一直返回错误答案,以下是我的Python代码:
while True: try: strings = input() string=[] t=-1 for a in strings: string.append(a) for abcd in string: if abcd == '''"''': t=t+1 if t%2==0: string[string.index(abcd)] = '``' else: string[string.index(abcd)] = """''""" output=''.join(string) print(output) except EOFError: break
代码存在的问题:
- 匹配目标错误:代码中判断字符是否为
"(HTML实体),但OJ的输入是原始的双引号",导致替换逻辑根本无法触发。 - 索引处理错误:
string.index(abcd)只会返回第一个匹配双引号的位置,当一行中有多个双引号时,后续的双引号会错误地修改第一个位置的字符,而非当前遍历到的位置。 - 右引号赋值混乱:代码中右引号的赋值写法存在语法问题,正确的TeX右引号应为
''(两个单引号),无需复杂转义。
修正后的代码:
while True: try: line = input() result = [] use_left_quote = True # 标记当前需要替换为左引号还是右引号 for char in line: if char == '"': result.append('``' if use_left_quote else "''") use_left_quote = not use_left_quote else: result.append(char) print(''.join(result)) except EOFError: break
内容的提问来源于stack exchange,提问作者曾子桓
相关产品推荐
相关产品推荐

