离开停车场

题目描述

你被困在一个多层停车场。您的任务是仅使用楼梯离开停车场。出口总是在一楼的右下角。
创建一个采用矩阵的函数,其中:

  • 0 表示免费停车位。
  • 1 表示楼梯。
  • 2 表示您的起始位置,可以在停车场的任何一层。
  • 出口总是在一楼的右下角。
  • 您必须使用楼梯 1 才能下一层。
  • 除了一楼,每一层只有一个楼梯,一楼没有任何楼梯。
    请你设计并返回一个最快离开停车场的字符串。

输入输出格式

输入格式
第一行 N 表示循环的次数。
第二行有 test_data 表示 测试数据的字符串,这些字符串中间都用空格隔开。
输出格式
返回离开停车场的字符串。

输入输出样例1

输入
2
1 0 0 0 2
0 0 0 0 0
输出
L4 D1 R4

输入输出样例2

输入
3
2 0 0 1 0
0 0 0 1 0
0 0 0 0 0
输出
R3 D2 R1
解释
表示向右走三下,向下走两下,再向右走一下。

说明提示

  1. arr = [
  2. [1, 0, 0, 0, 2],
  3. [0, 0, 0, 0, 0]
  4. ]
  5. # 从2开始,向左移动4次=“L4”
  6. # 从楼梯下 1 步 = “D1”
  7. # 向右移动 4 次从右下角退出 = "R4"
    def parking_exit(lst):  # 定义一个离开停车场的函数 并接收一个矩阵  
        # ********Begin***********  
        # 结果集数据列表  
        route = []  
        # 累加数据  
        tmp = ""  
        #  
        all_tmp = ""  
        pos = lst[0].index(2)  # 获取矩阵中第一行的数据你位置的索引  
        for i in range(len(lst) - 1):  
            # 找到矩阵中每行楼梯的索引  
            strcs = lst[i].index(1)  
            if strcs < pos:  # 当楼梯的索引位置小于你所在位置的索引时  
                tmp = "L" + str(pos - strcs)  # 对我们的tmp数据进行计算返回出向左走的步数。  
                route.append(tmp)  # 存入列表并向下一格  
                route.append("D1")  
            elif strcs > pos:  # 当楼梯索引位置大于你的索引位置  
                tmp = "R" + str(strcs - pos)  # 那么向右走对应的数值。  
                route.append(tmp)  # 存入到数据中  
                route.append("D1")  # 存入列表并向下一格  
            elif strcs == pos:  # 当你就在楼梯口中时  
                if (route[-1][0] == "D"):  # 如果上一次是向下的那么这一次就向下走两格。  
                    route[-1] = "D" + str(int(route[-1][1]) + 1)  
                else:  
                    route.append("D1")  
            tmp = ""  
            pos = strcs  
        # 如果当你的位置小于矩阵第一行  
        if pos < len(lst[0]) - 1:  
            # 那么向右走相应的步数  
            route.append("R" + str(len(lst[0]) - 1 - pos))  
        for k in route:  
            all_tmp += k + ' '  
        return all_tmp  
        # ********End*************
    '''arr = [  
        [1, 0, 0, 0, 2],  
        [0, 0, 0, 0, 0]  
    ]  
    # 从2开始,向左移动4次=“L4”  
    # 从楼梯下 1 步 = “D1”  
    # 向右移动 4 次从右下角退出 = "R4"  
    '''
    # 获取用户输入  
    N = int(input())
    lst = []
    for i in range(N):  
        a = [int(i) for i in input().split()]  
        lst.append(a)  
    print(parking_exit(lst))
    
    0
    


版权声明:本文为minghaibuai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。