from collections import deque
move=[1,-1,2,-2,3,-3]
x=input()
y=input()
def bfs(x,y):
n=len(x)
q=deque()
q.append([x,0])
aset=set()
aset.add(x)
while q:
p=q.popleft()
state=p[0]
step=p[1]
if state==y:
return step
else:
idx=state.index('*')
for i in move:
inext=i+idx
if 0<=inext<n:
state1=list(state)#保证每次for 循环的都是修改state而不是一直改下去
state1[idx]=state1[inext]
state1[inext]='*'
snext=''.join(state1)
if snext not in aset:
aset.add(snext)
q.append([snext,step+1])
return -1
res=bfs(x,y)
print(res)
【bfs】青蛙跳杯子
最新推荐文章于 2024-07-25 23:26:35 发布