代码之家  ›  专栏  ›  技术社区  ›  mchd

如何将0和1的模式与没有Regeg的字符串匹配

  •  0
  • mchd  · 技术社区  · 5 年前

    你会得到两个字符串模式和s。第一个字符串模式 仅包含符号0和1,第二个字符串s包含

    满足以下3个条件:

    它们的长度相等;对应字母中的每个0 子串中有一个元音;对于对应模式中的每个1 字母是辅音。你的任务是计算

    元音是 aeiouy . 其余的是辅音。所以,对于一个 pattern = 010 s = amazing ,输出应为 2 .

    1 回复  |  直到 5 年前
        1
  •  2
  •   Ajax1234    5 年前

    可以使用字典存储模式类型的字符,然后使用列表:

    import string
    d = {'0':(k:=set('aeiouy')), '1':{i for i in string.ascii_lowercase if i not in k}}
    def is_match(p, s):
      return len(p) == len(s) and all(a in d[b] for a, b in zip(s, p))
    
    def pattern_match(p, s): 
       return sum(is_match(p, s[i:i+len(p)]) for i in range(len(s)))
    
    pattern = '010'
    s = 'amazing'
    print(pattern_match(pattern, s))
    

    2