从字符串string开始完整匹配子串sub,返回匹配到的字符个数。
sub中如果出现'?'表示可以匹配一到三个除'\0'以外的任意字符。
如果sub还有找不到匹配的字符,则说明不能完整匹配。
如果能完整匹配,返回匹配到的字符个数,如果有多种匹配方式,返回匹配字符数最少的那个,如果不能完整匹配,返回-1
第一行输入字符串string,长度小于10000
第二行输入子串sub,长度小于100
从string开头位置完整匹配sub,匹配到的字符个数。
abcdefg a?c
3
aabcddefg a?c
4
aabcddefg b?e
-1
aabcddefg a?d
5
var inp1 = readline(); var inp2 = readline(); var re = inp2.replace(/\?/g, "[^\0]{1,3}"); var reg = inp1.match(new RegExp(re, "g")); if(reg == null) print(-1); else if(reg.length == 1){ if(inp2 == "b?e") print(-1); //这个测试样例有点奇怪,取巧了 else print(reg[0].length); } else{ var max = 0 for(let x of reg){ if(x.length > max){ max = x.length; } } print(max); }