ES6中以(pattern,s)为字符串的二进制模式匹配

问题描述 投票:0回答:1

给出两个字符串模式和s。第一个字符串pattern仅包含符号0和1,第二个字符串s仅包含小写英文字母。

如果下面的3个,则模式与s[l..r]的子字符串s匹配满足条件:

  1. 它们的长度相等;
  2. 对于模式中的每个0,子字符串中的对应字母是一个元音;
  3. 对于模式中的每个1,对应的字母是辅音。任务是计算与s匹配的pattern子字符串的数量。

注意:在这里,我们将元音定义为aeiouy。所有其他字母是辅音。

我没有在这里挑战任何人,我尝试了不同的方法,但是没有实现。

javascript typescript ecmascript-6
1个回答
0
投票

您可以先进行长度检查,然后使用正则表达式检查测试是否存在针对模式和计数的辅音。

function getCount(pattern, s) {
    if (pattern.length !== s.length) return false;
    const regExp = /^[^aeiouy]$/;
    let count = 0;
    
    for (let i = 0; i < pattern.length; i++) {
        if (+regExp.test(s[i]) === +pattern[i]) count++;
    }
    return count;
}

console.log(getCount('010', 'ama'));
© www.soinside.com 2019 - 2024. All rights reserved.