A. Shortest path of the king

A. Shortest path of the king

思路

总步数实则就是两点间的切比雪夫距离(就是横坐标差值的绝对值和纵坐标差值的绝对值两者的最大值),具体的走法可以用模拟的方法

代码实现

"""
国王独自一人留在棋盘上。尽管感到孤独,他并没有灰心,因为他有国家大事要处理。
例如,他必须对t方格进行正式访问。由于国王不喜欢浪费时间,他希望从当前位置
s到t方格的最少步数。帮助他实现这一目标。
在一步中,国王可以移动到与国王当前方格有共同边或共同顶点的方格
(通常他可以移动到8个不同的方格)。
输入
第一行包含方格s的棋盘坐标,第二行包含方格t的坐标。
棋盘坐标由两个字符组成,第一个是小写字母(从a到h),
第二个是1到8的数字。
输出
在第一行打印n——国王移动的最小步数。然后在n行中打印移动本身。
每个移动用以下8个之一描述:L, R, U, D, LU, LD, RU或RD。
L, R, U, D分别代表向左、向右、向上和向下移动(根据图片),
2个字母的组合代表对角线移动。如果答案不唯一,打印任何一个。
"""
s=input()#初位置
t=input()#目标位置
x=ord(t[0])-ord(s[0])
y=ord(t[1])-ord(s[1])
# print(x)
# print(y)
print(max(abs(x),abs(y)))#注意绝对值
while(x!=0 or y!=0):
    step=""
    if(x<0):
        step+="L"
        x+=1
    if(x>0):
        step+="R"
        x-=1
    if(y<0):
        step+="D"
        y+=1
    if(y>0):
        step+="U"
        y-=1
    print(step)

你可能感兴趣的:(python,开发语言,算法)