110. 字符串接龙

  • from collections import deque
  • n=int(input())
  • begin,end=input().split()
  • strings=[""]*n
  • for i in range(n):
  • strings[i]=input()
  • visit=[True]*n
  • def fun(str1,str2):
  •     if len(str1)!=len(str2):
  •         return False
  •     count=0
  •     for i in range(len(str1)):
  •         if str1[i]!=str2[i]:
  •             count+=1
  •         if count>1:
  •             return
  •     return count==1
  • if fun(begin,end):
  •     print(1)
  •     exit()
  • que=deque()
  • que.append([begin,1])
  • while que :
  •     value,step=que.popleft()
  •     if fun(value,end):
  •         print(step+1)
  •         break
  •     for i in range(n):
  •         if visit[i] and fun(strings[i],value):
  •             visit[i]=False
  •             que.append([strings[i],step+1])
  • else:
  •     print(0)

发表评论