从字符串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);
}