易错点
这题的读入非常坑,文件末尾存在\r,因此读入时需要将其转换为列表再遍历。
或者也可以直接给print的输出加个特判。
下附代码
转为列表
def dfs(mid, bw):
ch = bw[-1]
pos = -1
for i in range(0, len(mid)):
if mid[i] == ch:
pos = i
break
if pos != -1:
print(ch, end="")
if mid[:pos]:
dfs(mid[:pos], bw[:pos])
if mid[pos + 1 :]:
dfs(mid[pos + 1 :], bw[pos : len(bw) - 1])
s1 = input()
s2 = input()
ss1 = list(s1)
ss2 = list(s2)
ss1[-1] = ""
ss2[-1] = ""
dfs(ss1, ss2)
特判
def dfs(mid, bw):
ch = bw[-1]
pos = -1
for i in range(0, len(mid)):
if mid[i] == ch:
pos = i
break
if pos != -1:
if ch!='\n' and ch!='\r':
print(ch, end="")
if mid[:pos] != "":
dfs(mid[:pos], bw[:pos])
if mid[pos + 1 :] != "":
dfs(mid[pos + 1 :], bw[pos : len(bw) - 1])
s1 = input()
s2 = input()
s1.replace("\n", "")
s1.replace("\r", "")
s2.replace("\n", "")
s2.replace("\r", "")
dfs(s1, s2)
本文介绍了一种使用深度优先搜索(DFS)处理输入字符串中特殊字符如
的方法。通过将输入转换为列表并递归地遍历这些列表来找到匹配的字符,解决了文件末尾特殊字符导致的问题。提供了两种实现方案:一种是通过列表处理,另一种是对输出进行特判。
867

被折叠的 条评论
为什么被折叠?



