HOME: First Word —— 字符串分割、正则表达式

CheckIO是一个通过闯关游戏学习编程的网站(Python和JavaScript)。通过解题开发新“岛屿”,同时,通过做任务获得Quest Points解锁会员题目。
文章内容:题目、我自己的思路和代码以及优秀代码,如果想看大神解题可以直接跳到“优秀代码”部分。
本题链接:https://py.checkio.org/en/mission/first-word/

题目

给定一个字符串,找到其第一个单词。

注意以下几点:

  • 字符串中可以包含点和逗号
  • 字符串可以以字母或点或空格开头
  • 一个单词可以包含一个撇号,它是一个单词的一部分
  • 整个文本可以只包含一个单词

输入: 字符串
输出: 字符串

举个栗子:

first_word("Hello world") == "Hello"
first_word("greetings, friends") == "greetings"

应用场景:the first word is a command in a command line

假设:文本中可以包含:a-z A-Z , . ’

难度: Elementary+

题目框架

def first_word(text: str) -> str:
    # your code here
    return ''
   
if __name__ == '__main__':
    print("Example:")
    print(first_word("Hello world"))
    
    # These "asserts" are used for self-checking and not for an auto-testing
    assert first_word("Hello world") == "Hello"
    assert first_word(" a word ") == "a"
    assert first_word("don't touch it") == "don't"
    assert first_word("greetings, friends") == "greetings"
    assert first_word("... and so on ...") == "and"
    assert first_word("hi") == "hi"
    assert first_word("Hello.World") == "Hello"
    print("Coding complete? Click 'Check' to earn cool rewards!")

思路及代码

思路

  1. 使用正则表达式进行匹配
  2. 然后使用.group()输出结果

代码

def first_word(text: str) -> str:
    import re
    a = re.search('[a-zA-Z]*\'?[a-zA-Z]+?', text)
    return a.group()

优秀代码

No.1

def first_word(text: str) -> str:
    import re
    return re.search("[a-zA-Z']+", text).group()

或:

def first_word(text: str) -> str:
    import re
    return re.search("[\w']+", text).group(1)

No.2

def first_word(text: str) -> str:
    text = text.replace('.', ' ').replace(',', ' ').strip()
    return text.split()[0]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值