Google Kick Start Wiggle Walk运行时错误

时间:2019-05-27 17:10:11

标签: python-3.x

在一个名为Wiggle Walk的Google Kick Start问题中,我提交了我的代码,但显示为RE:RunTime Error,我相当确定我的代码中没有问题(至少不是我认为的问题)。谁能帮我找到问题。

问题: 问题 Banny刚买了一个新的可编程机器人。为了测试他的编码技能,他将机器人放置在R排(从北到南从1到R)和C列(从西到东从1到C)的正方形网格中。 r行和c列中的正方形表示为(r,c)。

最初,机器人从正方形(SR,SC)开始。 Banny将给机器人N条指令。每个指令都是N,S,E或W中的一个,指令机器人分别向北,向南,向东或向西移动一个正方形。

如果机器人移动到之前所在的正方形,则机器人将继续以相同的方向移动,直到到达之前未经过的正方形。 Banny绝不会向机器人发出指令,以使其离开网格。

遵循N条指令后,您可以帮助Banny确定机器人将完成哪个方块?

输入 输入的第一行给出了测试用例的数量,T。每个测试用例都从一行开始,该行分别包含五个整数N,R,C,SR和SC,指令数,行数,列数,机器人的起始行和起始列。

然后,下一行包含N个字符的单个字符串;这些字符中的第i个字符是Banny给机器人的第i个指令(如上所述,N,S,E或W中的一个)。

输出 对于每个测试用例,输出包含Case #x的一行:r c,其中x是测试用例编号(从1开始),r是机器人完成的行,c是机器人完成的列。

限制 内存限制:1GB。 1≤T≤100。 1≤R≤5×104。 1≤C≤5×104。 1≤SR≤R。 1≤SC≤C。 这些说明不会导致机器人移出网格。

测试集1(可见) 时间限制:20秒。 1≤N≤100。

测试集2(隐藏) 时间限制:60秒。 1≤N≤5×104。

样品

输入

案例1:5 3 6 2 3        EEWNS 案例2:4 3 3 1 1        SESE 案例3:11 5 8 3 4        内情

输出

案例1:3 2 案例2:3 3 案例3:3 7

inp1 = input("Enter numbers")
l1 = inp1.split()
l2 = []
for i in range(len(l1)):
    l2.append(int(l1[i]))


no_rows = l2[1]
no_columns = l2[2]

row_and_column = []
j = 1
while j <= no_columns:
    for i in range(1, no_rows + 1):
        row_and_column.append((i, j))
    j += 1


inp2 = input("Enter Commands")
inp2 = inp2.lower()
commands = {}
for i in inp2:
    commands[i] = commands.get(i, 0) + 1


def move_north(x, y):
    position = (x - 1, y)
    if position in row_and_column:
        return position
    else:
        return move_north(position[0], position[1])


def move_south(x, y):
    position = (x + 1, y)
    if position in row_and_column:
        return position
    else:
        return move_south(position[0], position[1])


def move_west(x, y):
    position = (x, y - 1)
    if position in row_and_column:
        return position
    else:
        return move_west(position[0], position[1])


def move_east(x, y):
    position = (x, y + 1)
    if position in row_and_column:
        return position
    else:
        return move_east(position[0], position[1])


position = (l2[3], l2[4])
row_and_column.remove(position)
x_cord = position[0]
y_cord = position[1]


for i in inp2:
    if i == "n":
        position = move_north(x_cord, y_cord)
        row_and_column.remove(position)
        x_cord = position[0]
        y_cord = position[1]
    elif i == "s":
        position = move_south(x_cord, y_cord)
        row_and_column.remove(position)
        x_cord = position[0]
        y_cord = position[1]
    elif i == "w":
        position = move_west(x_cord, y_cord)
        row_and_column.remove(position)
        x_cord = position[0]
        y_cord = position[1]
    elif i == "e":
        position = move_east(x_cord, y_cord)
        row_and_column.remove(position)
        x_cord = position[0]
        y_cord = position[1]


print(position[0], position[1])

1 个答案:

答案 0 :(得分:0)

<ul class="contact-container">
  <li class="contact"><img src="https://placehold.it/100" alt="facebook" class="facebook"> </li>
  <li class="contact"><img src="https://placehold.it/100" alt="twitter" class="twitter"> </li>
  <li class="contact"><img src="https://placehold.it/100" alt="instagram" class="instagram"> </li>
  <li class="contact"><img src="https://placehold.it/100" alt="twitch" class="twitch"> </li>
</ul>

我的答案也运行时错误。我也想知道真正的答案。