【Python CheckiO 题解】Between Markers (simplified)


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


题目描述

【Between Markers (simplified)】:这个是Between Markers任务的简化版本,给定一个字符串和两个标记字符(第一个和最后一个标记),找到两个标记符之间包含的子字符串。初始标记和结束标记始终不同,初始标记和结束标记的大小始终为1个字符,初始标记和结束标记始终存在于字符串中。

【链接】https://py.checkio.org/mission/between-markers-simplified/

【输入】:三个参数,都是字符串,第二个和第三个参数是初始标记和结束标记

【输出】:字符串

【范例】

between_markers('What is >apple<', '>', '<') == 'apple'

解题思路

利用 find() 方法查找原字符串中是否有标记字符,注意,由于 find() 方法会返回字符串出现的索引位置,而要提取标记字符之间的字符串,初始标记的位置就要加上它的长度,本题中,其长度始终为 1,所以只加 1 即可,最后利用切片,返回初始标记和结束标记之间的字符串即可。

代码实现

def between_markers(text: str, begin: str, end: str) -> str:
    """
        returns substring between two given markers
    """
    start = text.find(begin) + 1
    finish = text.find(end)
    return text[start:finish]


if __name__ == '__main__':
    print('Example:')
    print(between_markers('What is >apple<', '>', '<'))

    # These "asserts" are used for self-checking and not for testing
    assert between_markers('What is >apple<', '>', '<') == "apple"
    assert between_markers('What is [apple]', '[', ']') == "apple"
    assert between_markers('What is ><', '>', '<') == ""
    assert between_markers('>apple<', '>', '<') == "apple"
    print('Wow, you are doing pretty good. Time to check it!')

大神解答

def between_markers(text: str, first: str, second: str) -> str:
    """
        returns substring between two given markers
    """
    return text[text.find(first) + 1: text.find(second)]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT.BOB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值