好钥匙

每周挑战 282

穆罕默德·s·安瓦尔 (mohammad s. anwar) 每周都会发出“每周挑战”,为我们所有人提供了为两周任务提出解决方案的机会。我的解决方案首先用python编写,然后转换为perl。这对我们所有人来说都是练习编码的好方法。

挑战,我的解决方案

任务 1:好整数

任务

给你一个正整数 $int,有 3 位或更多位。

编写一个脚本以返回给定整数中的好整数,如果没有找到则返回-1。一个好的整数是恰好三个连续的匹配数字。

我的解决方案

我原本以为这个任务可以用正则表达式模式来完成,但看来我错了。我会看看其他 tpw 成员,看看他们是否可以这样做。

对于这个任务,我有一个变量 pos,它从 0 迭代到小于字符串长度的 3。然后我检查四件事:

  1. 当前位置的数字与下一个位置的数字相同。
  2. 当前位置的数字与下一个第二位置的数字相同。
  3. 位置为0(表示当前数字之前没有数字)或者前一个数字与当前数字不同。
  4. 位置比长度少3(表示当前三位数之后没有数字)或者下第三个数字与当前数字不同。

如果这些都是真的,我会返回这三位数字。在 python 中,这是作为字符串完成的,因为“000”不是真正的整数。如果迭代器耗尽,我返回-1。

def good_integer(n: int) -> str:
    value = str(n)
    length = len(value)

    for pos in range(length-2):
        if (
            value[pos] == value[pos+1]
            and value[pos] == value[pos+2]
            and (pos == 0 or value[pos] != value[pos-1])
            and (pos + 3 == length or value[pos] != value[pos+3])
        ):
            return value[pos:pos+3]

    return '-1'

示例

$ ./ch-1.py 12344456
444

$ ./ch-1.py 1233334
-1

$ ./ch-1.py 10020003
000

任务 2:更改密钥

任务

您将获得一个字母字符串 $str,由用户输入。

编写一个脚本来查找用户必须更改键才能键入给定字符串的次数。更改密钥被定义为使用与上次使用的密钥不同的密钥。 “shift”和“caps lock”键不计算在内。

我的解决方案

有趣的事实。当我得到一个新键盘(每隔几年)时,我会看到我需要多长时间才能将大写锁定键撕下来。大多数键盘都撑不了一天!

对于此任务,我将字符串转换为小写并从两个变量开始。 current_key 值是当前按下的键,并使用输入的第一个字母进行初始化。 changes 变量是我所做的关键更改的数量,从 0 开始。

然后我循环遍历输入字符串中的每个字母。如果该字母与 current_key 不同,我用新字母更新它,并将更改增加 1。

def key_changes(s: str) -> int:
    s = s.lower()
    current_key = s[0]
    changes = 0

    for letter in s:
        if letter != current_key:
            current_key = letter
            changes += 1

    return changes

示例

$ ./ch-2.py pPeERrLl
3

$ ./ch-2.py rRr
0

$ ./ch-2.py GoO
1

以上就是好钥匙的详细内容,更多请关注昆居客【www.kunjuke.com】。

相关推荐:

暗黑4混沌界钥匙怎么获得

暗黑破坏神 4 新赛季 S14 将于 7 月 1 日正式拉开帷幕,为玩家带来前所未有的游戏体验。还上线了许多内容,那么有不少小伙伴好奇S14赛季混沌界钥匙怎么获得,下面就来告诉大家。 暗黑4混沌界钥匙怎么获得 获取流程 首先得获取巢穴钥匙,获取巢穴钥匙的方法有两种。 第一是通过地狱狂潮的箱子中获取。 第二是通过战争计划点出[扭曲与“腐烂”]的天赋点后,有高概率刷出小督瑞尔,击杀后也有概率掉落。 有...

暗黑4巢穴钥匙快速获取攻略

暗黑破坏神 4 新赛季 S14 将于 7 月 1 日正式拉开帷幕,为玩家带来前所未有的游戏体验。还上线了许多内容,那么有不少小伙伴好奇巢穴钥匙怎么快速刷取,下面就来告诉大家。 暗黑4巢穴钥匙快速获取攻略 方法一:地狱狂潮刷取(稳定量产) 战争计划地狱狂潮分支天赋:点满左侧地狱狂潮秘宝箱天赋,中间点第二层,合计消耗5点天赋。 刷满威胁值,寻找地图混沌裂隙蠕虫,击杀场内督瑞尔,高概率掉落高阶巢穴钥匙。...

苹果 iOS 27 现踪迹:iPhone 17 等用户未来可用 Apple 车钥匙解锁小米 SU7/YU7 汽车

感谢网友 对的时间点、顺势而为 的线索投递! 7 月 9 日消息,科技媒体 MacRumors 昨日(7 月 8 日)发布博文,报道称通过挖掘 iOS 27 Beta 3 开发者预览版,在代码中发现了 LCID 和 XIA1 标识符,暗示苹果为 Lucid 和小米汽车添加 Apple 车钥匙支持。注:Apple 车钥匙是苹果在钱包应用与近场通信体系中提供的数字车钥匙功能,用户可通过 iPhone ...

柯达 Charmera 钥匙串相机盲盒登陆国内市场:搭 1/4 英寸 160 万像素 CMOS,256 元

感谢网友 BIOS 的线索投递! 7 月 1 日消息,柯达宣布旗下 Charmera 钥匙串相机盲盒全新千禧版本已登陆国内市场,由代理商 citysuper 超生活在线上(微信商城)及北京 / 上海商圈线下销售,定价为 256 元。系列相机外形小巧,整体风格借鉴了 2000 年前后数码产品的常见设计语言,可当作钥匙串使用。其采用盲盒形式发售,消费者购买后会随机获得 7 种配色的 1 种,拆开盒子前...

《图书管理员:整理魔法图书馆吧!》全宝箱钥匙位置分享

《图书管理员:整理魔法图书馆吧!》中的宝箱钥匙的作用还是很大的,主要是用来打开特殊宝箱,钥匙一共有四把,首先是赤红八角钥匙,就在靠楼梯的墙那里,过去找就可以了,很容易就能看到。 图书管理员整理魔法图书馆吧宝箱钥匙在哪里 红色:进游戏背后墙上 绿色:下楼梯的椅子上 蓝色:二楼走到底柜子上(必须拿到红色解锁跳跃,跳到柜子上) 黄色:楼梯扶手白色罐子里(必须拿到红色解锁跳跃,跳到扶手上) 本文内容来源于...

《哥特王朝:重制版》葛梅兹钥匙具体作用介绍

《哥特王朝:重制版》中的葛梅兹钥匙是游戏里非常重要的特殊道具,击败葛梅兹之后才能获得这两个钥匙,而这两个钥匙的作用各不相同,首先是葛梅兹的钥匙,这把钥匙是开城堡里所有门的钥匙。 哥特王朝重制版葛梅兹钥匙有什么用 葛梅兹领主的身上有2把钥匙,1把是开城堡里所有的门,1把是开他房间宝箱的锁。 相关攻略:强效无敌之戒获得方法介绍 本文内容来源于互联网,如有侵权请联系删除。

洛克王国蓝色命运钥匙在什么位置

洛克王国蓝色命运钥匙位置:可以在海螺沙滩打败龟仙人获得;玩家进入游戏后,到达场景地图海洋研究院,然后点击图示图标,选择蓝色命运钥匙,前往打败龟仙人即可获得。 详细答案: 洛克王国蓝色命运钥匙可以在海螺沙滩打败龟仙人获得。 1.玩家进入游戏后,到达场景地图海洋研究院,然后点击图示图标。 2.接着点击道具说明。 3.最后选择蓝色命运钥匙,前往打败龟仙人即可获得。 本文内容来源于互联网,如有侵权请联系删...

原神超厉害魔法钥匙外观获取方法

原神超厉害魔法钥匙外观怎么获取,在「幻想虚境剧演」玩法中,可以与布伦妮一同进行「猎魔演练」,在幻想秘境中进行战斗训练,完成各个挑战,可以获取「幻友默契」。累计提升「幻友默契」达到指定值,可获取武器外观「超厉害魔法钥匙」、原石、智识之冕等奖励。 原神超厉害魔法钥匙外观获取方法: 一、参与条件 冒险等阶≥30级 完成魔神任务:第二章·第一幕中的「离岛逃离计划」 完成魔神任务「真实之月」后体验更佳。 二...