原题链接
易错点这题的读入非常坑,文件末尾存在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)


![洛谷P1030 [NOIP2001 普及组] 求先序排列 Python题解 洛谷P1030 [NOIP2001 普及组] 求先序排列 Python题解](http://www.mshxw.com/aiimages/31/269294.png)
