【Python CheckiO 题解】Create Intervals


CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。

CheckiO 官网:https://checkio.org/

我的 CheckiO 主页:https://py.checkio.org/user/TRHX/

CheckiO 题解系列专栏:https://itrhx.blog.csdn.net/category_9536424.html

CheckiO 所有题解源代码:https://github.com/TRHX/Python-CheckiO-Exercise


题目描述

【Create Intervals】:给定一个由整数组成的字典,找到连续的一串数字,将这串连续的数字的第一个数和最后一个数组成一个元组,最后返回多个元组组成的列表。

【链接】:https://py.checkio.org/mission/create-intervals/

【输入】:字典

【输出】:两个整数组成的元组列表

【范例】

create_intervals({1, 2, 3, 4, 5, 7, 8, 12}) == [(1, 5), (7, 8), (12, 12)]
create_intervals({1, 2, 3, 6, 7, 8, 4, 5}) == [(1, 8)]

解题思路

定义两个列表,start 列表用于储存元组的第一个数字,end 列表用于储存元组的第二个数字;

对于 start 列表:循环访问 data 字典,遍历所有数字,将数字减一,如果没有在原字典中,则表示这个数字是一个元组开头的数字;

对于 end 列表:循环访问 data 字典,遍历所有数字,将数字加一,如果没有在原字典中,则表示这个数字是一个元组结束的数字;

最后使用 zip 方法将两个列表中对应的元素打包成一个个元组,然后返回由这些元组组成的列表即可。

代码实现

def create_intervals(data):start, end = [], []for i in data:if i-1 not in data:start.append(i)if i+1 not in data: end.append(i)return list(zip(sorted(start), sorted(end)))if __name__ == '__main__':#These "asserts" using only for self-checking and not necessary for auto-testingassert create_intervals({1, 2, 3, 4, 5, 7, 8, 12}) == [(1, 5), (7, 8), (12, 12)], "First"assert create_intervals({1, 2, 3, 6, 7, 8, 4, 5}) == [(1, 8)], "Second"print('Almost done! The only thing left to do is to Check it!')

大神解答

大神解答 NO.1

def create_intervals(data):left = [x for x in data if x - 1 not in data]right = [x for x in data if x + 1 not in data]return list(zip(sorted(left), sorted(right)))

大神解答 NO.2

def create_intervals(data):plus_one, minus_one = [], []for d in sorted(data):if d - 1 not in data:minus_one.append(d)if d + 1 not in data:plus_one.append(d)return list(zip(minus_one, plus_one))

大神解答 NO.3

def create_intervals(data):return list(zip(sorted(x for x in data if x-1 not in data),sorted(x for x in data if x+1 not in data)))

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

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

相关文章

on-premise-application是什么意思

应用、程序的意思。 1、该平台使用户可以在基于云计算的前置应用(on-premise application)之间方便地传输数据,而无需任何软件和代码。 2、公司再以SQL语法将资料库存放进上部署应用程序(On-Premise Application)中。 On-premises software…

【Python CheckiO 题解】Text Editor

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

使用VS code 创建 Azure Functions,从blob触发,解析,发送至Service Bus

场景: 某设备定时于每天23:00左右将一天的运行日志.devicelogtxt上传到Azure Blob,期待Blob文件上传后, 自动通过Azure Functions 解析文件并将文件内容写入到服务总线Service Bus的队列中。 上传的文件格式为: 步骤: 下载并安装…

【Python CheckiO 题解】Remove Accents

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Power Platform之Power Automate新增RPA功能

​ 什么是RPA RPA( Robotic Process Automation 机器人流程自动化软件),是一种新型的人工智能的虚拟流程自动化机器人。RPA的核心是通过自动化、智能化技术来“替代人”进行重复性、低价值、无需人工决策等固定性流程化操作,从而…

【Python CheckiO 题解】Count Consecutive Summers

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Hyper-V第1代虚拟机和第2代虚拟机特性对照表

本文《Hyper-V第1代虚拟机和第2代虚拟机特性对照表》系小编在小伟博客看到的文档,转载给大家一起学习。 在 Windows Server 2012 R2 和 Windows 8.1 中内置的 Hyper-V 功能,新增了一种“第二代”虚拟机,从虚拟硬件的层面进行了提升&#xff0…

【Python CheckiO 题解】Speech Module

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics 365 Online和On-premises在开发方式上的差别

1、新建账号的不同:on-premises(下文简称op)是和ad绑定的,所以必须先在ad中新建账号后才能在CRM中新建。而online是和Office365(下文简称O365)绑定的,所以需在O365中新建账号再分配D365许可(前提是已购买license),当分配完许可后,…

【Python CheckiO 题解】Time Converter (12h to 24h)

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

【转】Dynamics 365 On-Premise Server v9.0部署体验

期盼已久的Dynamics 365 On-Premise的版本升级终于在11月初姗姗来迟。 11月2日起已经可以在官方渠道下载正式版的Dynamics 365 Server v9.0安装文件,版本号9.0.2,随手附上中文版安装文件下载地址。 想必已经有不少小伙伴开始尝试各种升级、安装了吧。 …

【Python CheckiO 题解】Multicolored Lamp

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

【转】五大方法,彻底永久关闭win10自动更新的方法【已验证有效】

自从微软大面积使用某员工后,思路越来越奇葩了,前天工作没做完,放在那里,第二天毫无羞耻的就给你重启了,那一瞬间,真想拿dollar到对面slay。于是就有下文,大部分内容是从网上摘录、归纳起来的。…

【Python CheckiO 题解】Probably Dice

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

【Python CheckiO 题解】Roman Numerals

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics CRM 2016 安装

Dynamics CRM 2016 安装 CRM 2016出来了一段时间了,一直也没机会尝试一下,现在再测试ADFS的时候顺手装一个测试环境,记录一下整个安装配置流程。 首先准备好windows 2012 std,sql server 2014, dynamics crm2016安装…

【Python CheckiO 题解】Largest Rectangle in a Histogram

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics 365 on-premises 安装

安装Dynamics 365环境配置要求: 系统版本:Windows Server 2016 SQL 版本: Microsoft SQL Server 2016 SP2 Dynamics 365 版本:CRM9.0-Server-CHS-amd64 安装步骤: 一.在虚拟机安装Windows Server 2016 二.安装好…

【Python CheckiO 题解】Date and Time Converter

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

2.1Dynamics 365 安装问题——无法访MSCRM_CONFIG数据库

1. 问题 2. 原因 出现此问题的一个或多个下列条件都为真︰ 在多务器中安装 Microsoft Dynamics 365。然后,直接在运行 Microsoft SQL Server 的服务器上安装 Microsoft Dynamics 365。但是,没有设置某些 SQL Server 权限。Mic…