华为机试题:HJ91 走方格的方案数(python)

news2024/9/28 17:35:09

文章目录

  • (1)题目描述
  • (2)Python3实现
  • (3)知识点详解
    • 1、input():获取控制台(任意形式)的输入。输出均为字符串类型。
      • 1.1、input() 与 list(input()) 的区别、及其相互转换方法
    • 2、print() :打印输出。
    • 3、map():将指定函数依次作用于序列中的每一个元素 —— 返回一个迭代器,结果需指定数据结构进行转换后输出。
    • 4、str.split():通过指定分隔符(默认为空格)对字符串进行切片,并返回分割后的字符串列表(list)。

(1)题目描述

在这里插入图片描述

(2)Python3实现

def f(n, m):
    if n == 0 or m == 0:
        return 1		# 若到达右下角,则走法+1
    else:
        return f(n-1, m) + f(n, m-1)		# 递归相加(向右和向下分别计算)


while True:
    try:
        n1, m1 = map(int, input().split())
        print(f(n1, m1))
    except:
        break

(3)知识点详解

1、input():获取控制台(任意形式)的输入。输出均为字符串类型。

str1 = input()
print(str1)
print('提示语句:', str1)
print(type(str1))

'''
asd123!#
提示语句: asd123!#
<class 'str'>
'''
常用的强转类型说明
int(input())强转为整型(输入必须时整型)
list(input())强转为列表(输入可以是任意类型)

1.1、input() 与 list(input()) 的区别、及其相互转换方法

  • 相同点:两个方法都可以进行for循环迭代提取字符,提取后都为字符串类型。
  • 不同点str = list(input()) 将输入字符串转换为list类型,可以进行相关操作。如: str.append()
  • 将列表转换为字符串:str_list = ['A', 'aA', 2.0, '', 1]
  • 方法一:print(''.join(str))
  • 方法二:print(''.join(map(str, str_list)))

备注:若list中包含数字,则不能直接转化成字符串,否则系统报错。

  • 方法一:print(''.join([str(ii) for ii in str_list]))
  • 方法二:print(''.join(map(str, str_list)))
    map():根据给定函数对指定序列进行映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。

(1) 举例说明:若list中包含数字,则不能直接转化成字符串,否则系统报错。

str = ['25', 'd', 19, 10]
print(' '.join(str))

'''
Traceback (most recent call last):
 File "C:/Users/Administrator/Desktop/test.py", line 188, in <module>
   print(' '.join(str))
TypeError: sequence item 3: expected str instance, int found
'''

(2)举例说明:若list中包含数字,将list中的所有元素转换为字符串。

str_list = ['A', 'aA', 2.0, '', 1]
print(''.join(str(ii) for ii in str_list))
print(''.join([str(ii) for ii in str_list]))
print(''.join(map(str, str_list))) 		# map():根据给定函数对指定序列进行映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。

'''
AaA2.01
AaA2.01
AaA2.01
'''

2、print() :打印输出。

【Python】print()函数的用法

x, y = 1, 9
print('{},{}' .format(x, y))	# 打印方法一
print('*'*10)					# 打印分割符
print(x, ',', y)				# 打印方法二

'''
1,9
**********
1 , 9
'''

3、map():将指定函数依次作用于序列中的每一个元素 —— 返回一个迭代器,结果需指定数据结构进行转换后输出。

函数说明:map(function, iterable)
输入参数:

  • function:指定函数。
  • iterable:可迭代对象
print('返回一个迭代器: ', map(int, (1, 2, 3)))
# 返回一个迭代器:  <map object at 0x0000018507A34130>

结果需指定数据结构进行转换后输出

  • 数据结构:list、tuple、set。可转换后输出结果
  • 数据结构:str。返回一个迭代器
  • 数据结构:dict。ValueError,需输入两个参数
print('将元组转换为list: ', list(map(int, (1, 2, 3))))
print('将字符串转换为list: ', tuple(map(int, '1234')))
print('将字典中的key转换为list: ', set(map(int, {1: 2, 2: 3, 3: 4})))

'''
将元组转换为list:  [1, 2, 3]
将字符串转换为list:  (1, 2, 3)
将字典中的key转换为list:  {1, 2, 3}
'''

################################################################################
dict_a = [{'name': 'python', 'points': 10}, {'name': 'java', 'points': 8}]
print(list(map(lambda x : x['name'] == 'python', dict_a)))
print(dict(map(lambda x : x['name'] == 'python', dict_a)))

"""
[True, False]
TypeError: cannot convert dictionary update sequence element #0 to a sequence
"""

4、str.split():通过指定分隔符(默认为空格)对字符串进行切片,并返回分割后的字符串列表(list)。

函数说明:str.split(str=".", num=string.count(str))[n]
参数说明:

  • str: 表示分隔符,默认为空格,但是不能为空。若字符串中没有分隔符,则把整个字符串作为列表的一个元素。
  • num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量。
  • [n]: 表示选取第n个切片。
    • 注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略。
s = 'www.dod.com.cn'
print('分隔符(默认): ', s.split())                    # 【输出结果】分隔符(默认):  ['www.dod.com.cn']
print('分隔符(.): ', s.split('.'))                   # 【输出结果】分隔符(.):  ['www', 'dod', 'com', 'cn']
print('分割1次, 分隔符(.): ', s.split('.', 1))        # 【输出结果】分割1次, 分隔符(.):  ['www', 'dod.com.cn']
print('分割2次, 分隔符(.): ', s.split('.', 2))        # 【输出结果】分割2次, 分隔符(.):  ['www', 'dod', 'com.cn']
print('分割2次, 分隔符(.), 取出分割后下标为1的字符串: ', s.split('.', 2)[1])      # 【输出结果】分割2次, 分隔符(.), 取出分割后下标为1的字符串:  dod
print(s.split('.', -1))                             # 【输出结果】['www', 'dod', 'com', 'cn']
###########################################
# 分割2次, 并分别保存到三个变量
s1, s2, s3 = s.split('.', 2)
print('s1:', s1)                                    # 【输出结果】s1: www
print('s2:', s1)                                    # 【输出结果】s2: www
print('s3:', s2)                                    # 【输出结果】s3: dod
###########################################
# 连续多次分割
a = 'Hello<[www.dodo.com.cn]>Bye'
print(a.split('['))                                 # 【输出结果】['Hello<', 'www.dodo.com.cn]>Bye']
print(a.split('[')[1].split(']')[0])                # 【输出结果】www.dodo.com.cn
print(a.split('[')[1].split(']')[0].split('.'))     # 【输出结果】['www', 'dodo', 'com', 'cn']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381613.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

剑指offer06.从尾到头打印链表

题目描述 解题思路 遍历链表&#xff0c;依次将元素压入栈中。然后依次弹出栈顶元素&#xff0c;存入数组返回。程序 class Solution { public:vector<int> reversePrint(ListNode* head) {ListNode *phead;stack<int> s1;while(p!NULL) //遍历链表&#xff0c;元…

jetson-Linux上 python 部署yolov5报错总结

第一个问题&#xff1a;python报错 illegal instruction报错先上图这报错&#xff0c;emmmmm&#xff0c;我是小白&#xff0c;多谢大佬的笔记&#xff0c;帮我解决了&#xff0c;虽然我也没搞懂。。。。嘿嘿具体解决办法就是&#xff1a;临时运行代码&#xff1a;1-在运文件前…

优雅停止 SpringBoot 服务,拒绝 kill -9 暴力停止

在使用 SpringBoot 的时候&#xff0c;都要涉及到服务的停止和启动&#xff0c;当我们停止服务的时候&#xff0c;很多时候大家都是kill -9 直接把程序进程杀掉&#xff0c;这样程序不会执行优雅的关闭。而且一些没有执行完的程序就会直接退出。 我们很多时候都需要安全的将服…

SAP 采购定价过程字段解析

下面我们针对每一个字段进行解释和用途分析 &#xff1a; 1、 步骤&#xff1a;代表了创建PO时&#xff0c;哪个条件类型放到前面&#xff0c;哪个放到后面&#xff0c;如果步骤号相同&#xff0c;那就以谁先选择出来谁就在前面。 2、 计数&#xff1a;没有任何实际意义&a…

web,h5海康视频接入监控视频流记录二(后台node取流)

首先将自己的appkey,secret以及对应参数填上&#xff0c;看看是否能够取流成功。 ws取流是需要开通559端口的&#xff0c;可以联系海康技术开放&#xff0c;以及mgc需要升级版本。 普通模式的话 需要升级mgc到5.13.102版本&#xff0c;可以找下现场技术帮你升级&#xff0c;先…

Java | IO 模式之 JavaBIO 应用

文章目录IO模型Java BIOJava NIOJava AIO&#xff08;NIO.2&#xff09;BIO、NIO、AIO的使用场景BIO1 BIO 基本介绍2 BIO 的工作机制3 BIO 传统通信实现3.1 业务需求3.2 实现思路3.3 代码实现4 BIO 模式下的多发和多收消息4.1 业务需求4.2 实现思路4.3 代码实现5 BIO 模式下接收…

大V龚文祥造谣董明珠恋情被禁言

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 因造谣董明珠与王自如恋情&#xff0c;知名大V龚文祥老师被今日头条禁言。龚文祥说&#xff0c;69岁的董明珠&#xff0c;找了一个小自己34岁的男友&#xff0c;引的网友议论纷纷。 2月26日&#…

使用Python和OpenCV制作电影般的截屏相册!

目录 简介&#xff1a; 实现步骤&#xff1a; 代码说明&#xff1a; 报错error&#xff1a; 问题所在&#xff1a; 解决方法&#xff1a; 1&#xff09;卸载&#xff1a; 2&#xff09;重新安装&#xff1a; 3&#xff09;安装成功&#xff1a; 效果如下&#xff1a; 简…

DockQuery 天狼 v1.2.0 正式发布

DockQuery 天狼经过 2022 年的孵化&#xff0c;于 2022 年年底发布了第一个版本。 在春回大地万象更新之际&#xff0c;DockQuery 发布了 1.2.0 版本&#xff0c;也是我们公开招募第一批产品体验官的版本。 在这个版本中&#xff0c;DockQuery 主要专注以下几个主题&#xff…

电影《毒舌律师》观后感

上周看了《毒蛇律师》这部电影&#xff0c;讲述一位’大律师’在法庭为己方辩护&#xff0c;最终赢得辩护的故事。 &#xff08;1&#xff09;人之常情 说起法律相关&#xff0c;不禁会让人联想到讲法律相关知识的罗翔老师&#xff0c;平时也会看他相关视频&#xff0c;无论是亲…

开发中遇到的问题合集

集合相关 1.JDK版本冲突导致的报错 报错信息&#xff1a; Set.of、List.of、Path.of 如果在 JDK 1.8 的项目中使用 Set.of() 方法报错&#xff0c;可能是因为该方法是 JDK 9 中新增的&#xff0c;不被 JDK 1.8 所支持。 如果你需要在 JDK 1.8 中使用类似的功能&#xff0c;可…

前端:CSS

CSS基本语法规则&#xff1a;选择器若干属性声明 style标签&#xff1a;可以放到代码的任意位置处&#xff0c;head/body中都可以 三种写CSS的方式&#xff1a; 1、内部样式&#xff1a;使用style标签&#xff0c;直接把CSS写到html文件中。此时的style标签可以放到任何位置…

BMI160 BOSCH/博世 六轴 加速度 陀螺仪 传感器

BMI160 6轴惯性运动传感器&#xff0c;采用MEMS传感器封装&#xff0c;将16位3轴加速度计和超低功耗3轴陀螺仪集成在一起。当加速度计和陀螺仪在全速模式下运行时&#xff0c;耗电典型值低至950A&#xff0c;仅为市场上同类产品耗电量的50%或者更低。 Bosch BMI160专为智能手机…

7 款最好的免费 PDF 转 Word 转换器工具

将 PDF 到 Word 转换软件下载到您的计算机将节省您一遍又一遍地访问浏览器的时间。在执行转换任务时&#xff0c;您也不会受到文件大小或数量的限制。现在阅读这篇文章&#xff0c;了解可免费下载的 7 种最佳 PDF 转 Word 转换器软件&#xff0c;以及在转换器中寻找什么。 哪个…

浅谈React Fiber工作原理

静态数据结构 每个 Fiber 节点对应一个组件&#xff0c;保存了该组件的类型&#xff0c;对应的 DOM 节点的对应信息。 FiberRootNode 有且仅有一个&#xff0c;而 rootFiber 可以有多个&#xff0c;因为我们可以挂载多个应用&#xff08;也就是多次调用ReactDOM.render&#…

注解@EnableAutoConfiguration

上一节已经看了Import注解&#xff0c;而EnableAutoConfiguration注解中就引用了此注解 AutoConfigurationPackage Import(AutoConfigurationImportSelector.class) public interface EnableAutoConfiguration { 所以接下来可以看一下AutoConfigurationImportSelector类&…

Educational Codeforces Round 144 (Rated for Div. 2) E

人菜瘾大还是忍不住打了这场比赛&#xff0c;b卡了半小时&#xff0c;甚至还写了一个最长公共子序列然后喜提wa2&#xff0c;但是c,d还是过的比较快&#xff0c;最后排名rk175有惊无险的上分了&#xff0c;e题赛时一眼想出思路&#xff0c;但是我的实现能力有限&#xff0c;没能…

谷歌关键词排名上首页需要多久【2023年实战数据】

本文主要分享2023年实战得出谷歌做新站关键词排名到首页所需要的时间周期测试。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 谷歌关键词排名上首页需要多久&#xff1f; 答案是&#xff1a;90天左右。 具体以下图实战数据为主 关…

【总结】记一次log4j包冲突引发es类找不到的问题

问题现象 某天&#xff0c;某个应用搞新的迭代&#xff0c;突然报ElasticSearch 7.17.5 相关操作都失败了&#xff0c;且问题是必现&#xff0c;本地启动也能稳定复现。组内小伙伴按照es jar包冲突排查了一番&#xff0c;无果&#xff0c;于是问题转交给我来排查。 错误信息是…

计算机网络(第三版) 胡亮 第四章知识点总结

计算机网络&#xff08;第三版&#xff09; 胡亮 第四章知识点总结 学习指导 1、掌握询问/确认、轮询/选择模式的使用场合与工作方式 2、掌握停止等待协议的流量控制和差错控制&#xff0c;会进行相关定量的计算。 3、掌握滑动窗口协议中的回退N和选择控制的工作方式 4、了…