1. 铺瓷砖(10分)

题目内容:
给定一个长度为N的区域,及4种不同长度的瓷砖:灰瓷砖(长为1格)、红瓷砖(长为2格)、绿瓷砖(长为3格)与蓝瓷砖(长为4格),求所有不同的铺满整个区域的方法数。

例如:当N=5时,共有15种铺满区域的方法,示意图如下:

输入格式:
一个自然数N

输出格式:
一行数字,表示不同的方法总数

输入样例:
5

输出样例:
15

时间限制:500ms内存限制:32000kb

def tile(sizelist, space, knownresult):num = 0if space == 0:return 1elif knownresult[space] != 0:return knownresult[space]else:for i in [t for t in sizelist if t <= space]:num = num + tile(sizelist, space - i, knownresult)knownresult[space] = numreturn numsizelist = [1, 2, 3, 4]
space = eval(input())
knownresult = [0] * (space + 1)
print(tile(sizelist, space, knownresult))

2. 分发糖果(10分)

题目内容:
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。

你需要按照以下要求,帮助老师给这些孩子分发糖果:
每个孩子至少分配到 1 个糖果。
相邻的孩子中,评分高的孩子必须获得更多的糖果。
那么这样下来,老师至少需要准备多少颗糖果呢?

输入格式:
一个列表,以文本格式的有效Python表达式给出

输出格式:
一行数字,表示满足分配条件所需的最少糖果数

输入样例:
[1,2,2]

输出样例:
4

注:可行的分配方案为1、2、1 颗糖果;第三个孩子只得到1颗糖果也满足题目条件

示例代码模板:

def candy(ratings):# code herepasslst = eval(input())
print(candy(lst))

时间限制:500ms内存限制:32000kb

def candy(ratings):sum = 0length = len(ratings)c_list = [1 for i in range(length)] # 初始化列表,确保每个孩子都有糖for i in range(1,length):if ratings[i] > ratings[i-1]:c_list[i] = c_list[i-1] + 1for i in range(length-2, -1, -1):if ratings[i] > ratings[i+1] and c_list[i] <= c_list[i+1]:c_list[i] = c_list[i+1] + 1for i in range(length):sum += c_list[i]return sumlst = eval(input())
print(candy(lst))

3. 表达式按不同顺序求值(10分)

题目内容:
给定一个表达式字符串,求出按不同的求值顺序可能得到的所有结果

输入格式:
一行字符串,仅包含0-9与运算符+、-与*
注:字符串保证三种运算符左右均为数字字符

输出格式:
所有不重复的可能的结果,从小到大排序并以半角逗号","分隔

输入样例:
23-45

输出样例:
-34,-14,-10,10

注:
(2*(3-(45))) = -34
((2
3)-(45)) = -14
((2
(3-4))5) = -10
(2
((3-4)5)) = -10
(((2
3)-4)*5) = 10

示例代码模板:

def findWays(expr):# 用于将字符串转为数字与运算符,供参考nums, ops = [], []num = 0for c in expr:if '0' <= c <= '9':num = num * 10 + ord(c) - 48else:ops.append(c)nums.append(num)num = 0else:nums.append(num)# code hereexpr=input()
print(findWays(expr))

时间限制:500ms内存限制:32000kb

def findWays(expr):# 用于将字符串转为数字与运算符,供参考nums, ops = [], []num = 0for c in expr:if '0' <= c <= '9':num = num * 10 + ord(c) - 48else:ops.append(c)nums.append(num)num = 0else:nums.append(num)# 根据操做符进行计算def oper(num1, num2, op):if op == "+":return num1 + num2elif op == "-":return num1 - num2elif op == "*":return num1 * num2# 遍历计算def calc(start, end):if start == end:return [nums[start]]# 拆分计算temp = []for i in range(start, end):for a in calc(start, i):for b in calc(i + 1, end):temp.append(oper(a,b,ops[i]))return tempres = calc(0, len(nums)-1)res = list(set(res))res.sort()return resexpr=input()
a = findWays(expr)
print(",".join(str(i) for i in a))

最后一个测试用例有可能会超出时间限制,不要慌,多提交几次好了

数据结构与算法Python版-第六周作业相关推荐

  1. mooc数据结构与算法python版第十一周作业_中国大学 MOOC_数据结构与算法Python版_2020最新答案学习指南...

    中国大学 MOOC_数据结构与算法Python版_2020最新答案学习指南 更多相关问题 [判断题]实际集成运放的上限截止频率为无穷大 [多选题]现代城市的发展凸现出与以往不同的动力机制包括 教师在引 ...

  2. mooc数据结构与算法python版第十周作业_中国大学mooc慕课_数据结构与算法Python版_章节答案...

    新入对于接诊人的院病与查房,中国章节在多必须经治间内进行医师长时. 大学答案高的主要文库日常利用率较有(. 须注下问题:慕课意以,者以知识作为的投资产权出资.在配置上电装,该装装在置(线应部位)的接地 ...

  3. 数据结构与算法Python版-第五周作业

    1. 进制转换(10分) 题目内容: 给定一个M进制的数,请将其转换为N进制并输出 输入格式: 两行,第一行为空格分隔的两个数字,分别为10进制表示的M与N:其中M, N均满足2 ≤ M.N ≤ 36 ...

  4. 数据结构与算法python版 MOOC 第九周

    九.树及算法-上 本系列博客基于" (北京大学)数据结构与算法python版"慕课,课程在中国大学慕课和bilibili上均可找到. 1. 内容 树结构的相关术语 树的表示方法:嵌 ...

  5. 数据结构与算法(Python版)十六:有序表抽象数据类型及Python实现

    抽象数据类型:有序表OrderedList 有序表是一种数据项依照其某可比性质(如整数大小. 字母表先后) 来决定在列表中的位置 越"小"的数据项越靠近列表的头, 越靠" ...

  6. MOOC数据结构与算法Python版-第五周编程作业

    1 进制转换(10分) 题目内容: 给定一个M进制的数,请将其转换为N进制并输出 输入格式: 两行,第一行为空格分隔的两个数字,分别为10进制表示的M与N:其中M, N均满足2 ≤ M.N ≤ 36 ...

  7. 陈斌老师《数据结构与算法Python版》第五周作业——ASCII谢尔宾斯基地毯

    陈斌老师<数据结构与算法Python版>第五周作业--ASCII谢尔宾斯基地毯 题目 思路 程序如下 总结 题目 谢尔宾斯基地毯是形如上图的正方形分形图案,每个地毯可分为等大小的9份,其中 ...

  8. 数据结构与算法python版 MOOC 第三周

    三.基本线性结构 本系列博客基于" (北京大学)数据结构与算法python版"慕课,课程在中国大学慕课和bilibili上均可找到. 1. 内容 定义线性结构 讲解栈的结构结构 栈 ...

  9. mooc数据结构与算法python版期末测验_中国大学数据结构与算法Python版答案_MOOC慕课章节期末答案...

    中国大学数据结构与算法Python版答案_MOOC慕课章节期末答案 更多相关问题 java.lang 包的 Character 类的 isJavaIdentifierStart 方法的功能是用来判断某 ...

最新文章

  1. LeetCode: 109. Convert Sorted List to Binary Search Tree
  2. 德勤:2018年科技、传媒和电信行业未来趋势预测
  3. WCF+Silverlight部署本机备忘
  4. 南开15计算机基础,南开大学计算机基础06-07_B卷
  5. Android O限制系统全屏进一步遏制手机勒索
  6. 如何求欧拉函数~转载
  7. LeetCode 764. 最大加号标志(DP)
  8. discuz 如何去掉自定义表情
  9. python 计算机程序设计-某高校计算机编程教授教你如何快速入门python,一文带你进入编程...
  10. pi/4QPSK调制解调原理
  11. 阿兹猫 的 Java模拟登陆QQ邮箱获取好友列表的实现
  12. 周易六十四卦——比卦
  13. Oracle的直方图
  14. 七彩虹将星 X15 AT 2023 参数配置 七彩虹将星 X15 AT 评测
  15. JAVA10和11什么时候_Java 11 正式发布 支持期限至2026年9月
  16. 【CV】FPN:用于目标检测的特征金字塔网络
  17. Docker上部署SpringBoot项目并推送镜像到Docker Hub上---以MacOS为例
  18. 排序算法的稳定性及其汇总
  19. python_爬虫_七麦网
  20. 开发掌握什么技术才不会被淘汰

热门文章

  1. 知网靠论文一年收费10多亿
  2. RabbitMQ可视化界面登录不了,报错:Login failed
  3. 腾讯企业邮箱api java,企业邮箱丰富的开放接口_腾讯企业邮箱服务中心
  4. 51单片机串口通信(自动发送)
  5. 有3个学生3门功课成绩s={‘Teddy‘:[100,90,90], ‘Sandy‘:[98,91,80],‘Elmo‘:[90,90,83]} 要求输出每个学生的姓名,平均成绩(结果保留1位小
  6. 一篇文让你看懂NB-IoT、LoRa、eMTC、Sigfox及ZigBee的应用场景【转】
  7. linux硬盘速度测试方法
  8. 第二章 信托的关系及其设立
  9. GitHub Actions工作流语法
  10. 利用JavaScript实现BMI指数计算