题解 | #字符串通配符#

字符串通配符

https://www.nowcoder.com/practice/43072d50a6eb44d2a6c816a283b02036

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    const p = await readline();//?*Bc*?
    const s = await readline();//abcd
    let i = s.length-1,j = p.length-1;
    const isMatch = (i,j) =>{
        if(j < 0 || i < 0) return (j<0 ||j==0&&p.charAt(j)==="*")&& i<0;
        const si = s.charAt(i),pj = p.charAt(j);
        if(pj === "*" && /[0-9a-zA-Z]/.test(si)) return isMatch(i-1,j)||isMatch(i-1,j-1)||isMatch(i,j-1);//*匹配多个||匹配一个||匹配0个
        return (pj === "?" &&/[0-9a-zA-Z]/.test(si) || si.toLowerCase()===pj.toLowerCase()) && isMatch(i-1,j-1); 
    }
    console.log(isMatch(i,j));
}()

全部评论

相关推荐

06-25 16:25
梧州学院 Java
愿汐_:项目介绍那么长,然而你做了啥就一句话?
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务