蓝桥杯--振兴中华

简介: 蓝桥杯--振兴中华

题目描述


小明参加了学校的趣味运动会,其中的一个项目是:跳格子。地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)

从我做起振

我做起振兴

做起振兴中

起振兴中华

比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。 要求跳过的路线刚好构成“从我做起振兴中华”这句话。

请你帮助小明算一算他一共有多少种可能的跳跃路线呢?


e75dc2b20dda4edf914ca05dc06825db.png


str1 = "从我做起振兴中华"
lst = [['从','我','做','起','振'],['我','做','起','振','兴'],['做','起','振','兴','中'],['起','振','兴','中','华']]
# 从我做起振
# 我做起振兴
# 做起振兴中
# 起振兴中华
def ds(lst,i,j,b):
    """
    :param lst: 二维列表
    :param i:  横坐标
    :param j:  竖坐标
    :param b:   字符串,
    :return:
    """
    if i > 3 or j > 4:   # 判断数组索引是否越界,
        return
    if len(b) == 1:      # 当只剩一个字时 "华" 直接停止
        global num       # 声明全局变量
        num += 1
        return
    if b[0] != lst[i][j]:
        return
    b = b[1:]
    ds(lst, i+1, j, b)  # 向下走
    ds(lst, i, j+1, b)  # 向右走
    return
num = 0
ds(lst, 0, 0, str1)  # 调用函数
print(num)


相关文章
|
搜索推荐
蓝桥杯历年真题题解----2020年-- 排序
蓝桥杯历年真题题解----2020年-- 排序
|
Python
蓝桥杯--python实现特殊回文数组字
蓝桥杯--python实现特殊回文数组字
82 0
|
算法 C++
蓝桥杯第六讲--简单dp【习题】
蓝桥杯第六讲--简单dp【习题】
130 0
蓝桥杯第六讲--简单dp【习题】
|
算法 C++
蓝桥杯第十五讲--复杂dp【习题】
蓝桥杯第十五讲--复杂dp【习题】
233 0
蓝桥杯第十五讲--复杂dp【习题】
|
算法 C++
蓝桥杯第十六讲--疑难杂题(一)
蓝桥杯第十六讲--疑难杂题
170 0
蓝桥杯第十六讲--疑难杂题(一)
蓝桥杯第十六讲--疑难杂题(二)
蓝桥杯第十六讲--疑难杂题
153 0
蓝桥杯第十六讲--疑难杂题(二)