题解 | #字符串通配符#
字符串通配符
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)); }()