【问题标题】:Validating Postal Codes [closed]验证邮政编码[关闭]
【发布时间】:2022-12-11 20:07:26
【问题描述】:

有效的邮政编码 P 必须满足以下两个要求:

  1. P 必须是 100000 到 999999(含)范围内的数字。
  2. P 不得包含一对以上的交替重复数字对。 交替重复数字是在下一个数字之后立即重复的数字。换句话说,交替重复的数字对由两个相等的数字组成,它们之间只有一个数字。

    例如:

    121426 # 在这里,1 是交替重复的数字。 523563 # 此处,NO digit 是交替重复的数字。 552523 # 这里,2和5都是交替重复的数字。 您的任务是提供两个正则表达式 regex_integer_in_range 和 regex_alternating_repetitive_digit_pair。在哪里:

    regex_integer_in_range 应该只匹配整数范围从到包含

    regex_alternating_repetitive_digit_pair 应该在给定的字符串中找到交替的重复数字对。

    提供的代码模板将使用这两个正则表达式来检查输入字符串是否是使用以下表达式的有效邮政编码:

    (bool(re.match(regex_integer_in_range, P)) 和 len(re.findall(regex_alternating_repetitive_digit_pair, P)) < 2) 输入格式

    编辑器中的锁定存根代码从标准输入读取单个字符串,并使用提供的表达式和您的正则表达式来验证是否是有效的邮政编码。

    输出格式

    您不负责将任何内容打印到标准输出。编辑器中的锁定存根代码就是这样做的。

    样本输入 0

    110000 样本输出 0

    错误的 解释 0

    1 1 0000 :(0, 0) 和 (0, 0) 是两个交替的数字对。因此,这是一个无效的邮政编码。

【问题讨论】:

标签: python


【解决方案1】:

regex_integer_in_range = r"^[1-9][d]{5}$" # 不要删除 'r'。 regex_alternating_repetitive_digit_pair = r"(d)(?=d)" # 不要删除 'r'。

重新进口 P = 输入()

print (bool(re.match(regex_integer_in_range, P)) 和 len(re.findall(regex_alternating_repetitive_digit_pair, P)) < 2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-09
    • 2018-07-21
    • 2014-09-08
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多