【Python CheckiO 题解】Striped Words


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


题目描述

【Striped Words】:系统会为您提供带有不同单词的文本块,这些单词由空格和标点符号分隔,数字在此任务中不被视为单词(字母和数字的混合体也不是单词),您应该统计辅音和元音交替出现的单词的数量,即:您统计的单词不能有两个连续的元音或辅音,由单个字母组成的单词不计算在内。元音:AEIOUY;辅音:BCDFGHJKLMNPQRSTVWXZ。

【链接】:https://py.checkio.org/mission/striped-words/

【输入】:字符串(unicode)

【输出】:整数

【前提】:文本仅包含ASCII符,0 < len(text) < 105

【范例】

checkio("My name is ...") == 3
checkio("Hello world") == 0
checkio("A quantity of striped words.") == 1, "Only of"
checkio("Dog,cat,mouse,bird.Human.") == 3

解题思路

首先把所有的 ,. 都替换成空格,然后以空格为分隔符将原字符串进行分割,循环访问每一个字符,若相邻两个字符都是元音或辅音,或者字符是数字,或者是单个字符,则表示该单词不符合要求,设置标记符 n,如果不符合要求则为 0,符合要求则为 1,最后返回 n 的和即可。

代码实现

VOWELS = "AEIOUY"
CONSONANTS = "BCDFGHJKLMNPQRSTVWXZ"def checkio(text):text = text.replace(',', ' ').replace('.', ' ').split()num = 0n = 0for i in text:if len(i) < 2:n = 0for j in range(len(i)-1):if (i[j].upper() in CONSONANTS and i[j+1].upper() in CONSONANTS) or (i[j].upper() in VOWELS and i[j+1].upper() in VOWELS) or i[j].isdigit():n = 0breakelse:n = 1num += nreturn num# These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':assert checkio("My name is ...") == 3, "All words are striped"assert checkio("Hello world") == 0, "No one"assert checkio("A quantity of striped words.") == 1, "Only of"assert checkio("Dog,cat,mouse,bird.Human.") == 3, "Dog, cat and human"

大神解答

大神解答 NO.1

VOWELS = "AEIOUY"
CONSONANTS = "BCDFGHJKLMNPQRSTVWXZ"
PUNCTUATION = ",.!?"def checkio(text):text = text.upper()for c in PUNCTUATION:text = text.replace( c, " " )for c in VOWELS:text = text.replace( c, "v" )for c in CONSONANTS:text = text.replace( c, "c" )words = text.split( " " )count = 0for word in words:if len( word ) > 1 and word.isalpha():if word.find( "cc" ) == -1 and word.find( "vv" ) == -1:count += 1return count

大神解答 NO.2

import reVOWELS = "AEIOUY"
CONSONANTS = "BCDFGHJKLMNPQRSTVWXZ"def checkio(text):return len(re.findall(r'''(?ix)             (?#Case-insensitive, verbose)\b(                                     (?#Surrounding word boundaries)(?:(?: [{cons}] [{vow}] )+ [{cons}]?) (?#Word starting with consonant)|                                     (?#Alternative templates)(?:(?: [{vow}] [{cons}] )+ [{vow}]?)  (?#Word starting with vowel))\b'''.format(vow=VOWELS, cons=CONSONANTS), text))

大神解答 NO.3

import re
checkio=lambda t:sum(any(all('@'<c and j^(c in'aeiouyAEIOUY')^i&1
for i,c in enumerate(w))for j in(0,1))for w in re.findall(r"\w\w+",t))

大神解答 NO.4

import reVOWELS = "AEIOUY"
CONSONANTS = "BCDFGHJKLMNPQRSTVWXZ"def checkio(text):return len(re.findall(rf'(?:\b(?:[{CONSONANTS}][{VOWELS}])+[{CONSONANTS}]?\b|\b(?:[{VOWELS}][{CONSONANTS}])+[{VOWELS}]?\b)', text.upper()))

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

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

相关文章

Azure手把手系列 3:把IT的钱花在刀刃上

对于Azure以及公有云的了解&#xff0c;可谓是永无止境的&#xff0c;用一句客户的话来说就是Azure是大海&#xff0c;只要你往前航行&#xff0c;一定能时不时的发现宝藏&#xff1b;Azure好比是一座冰山&#xff0c;当你以为你已经对Azure很熟悉了&#xff0c;其实这只是冰山…

Azure手把手系列 4:深入了解Azure 一块钱当三块用

通过前面的文章&#xff0c;相信大家对Azure有了一个基础的认识&#xff0c;接下来&#xff0c;我们再来看下作为企业&#xff0c;选择公有云服务最重要的因素之一 价格。我们都知道所谓公有云&#xff0c;就是要让IT资源变成我们生活中类似于水电气的资源&#xff0c;按需使用…

【Python CheckiO 题解】Feed Pigeons

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

【Python CheckiO 题解】I Love Python!

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

【Python CheckiO 题解】Create Intervals

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

on-premise-application是什么意思

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

【Python CheckiO 题解】Text Editor

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

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

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

【Python CheckiO 题解】Remove Accents

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

Power Platform之Power Automate新增RPA功能

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

【Python CheckiO 题解】Count Consecutive Summers

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

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

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

【Python CheckiO 题解】Speech Module

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

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

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

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

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

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

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

【Python CheckiO 题解】Multicolored Lamp

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

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

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

【Python CheckiO 题解】Probably Dice

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