鲅鱼圈企业网站建设,好的wordpress企业模板下载地址,网站ip改变 备案,软件外包网题目
给你一个输入字符串 (s) 和一个字符模式 (p) #xff0c;请你实现一个支持 ? 和 * 匹配规则的通配符匹配#xff1a;
? 可以匹配任何单个字符。* 可以匹配任意字符序列#xff08;包括空字符序列#xff09;。
判定匹配成功的充要条件是#xff1a;字符模式必须…题目
给你一个输入字符串 (s) 和一个字符模式 (p) 请你实现一个支持 ? 和 * 匹配规则的通配符匹配
? 可以匹配任何单个字符。* 可以匹配任意字符序列包括空字符序列。
判定匹配成功的充要条件是字符模式必须能够 完全匹配 输入字符串而不是部分匹配。 示例 1
输入s aa, p a
输出false
解释a 无法匹配 aa 整个字符串。示例 2
输入s aa, p *
输出true
解释* 可以匹配任意字符串。示例 3
输入s cb, p ?a
输出false
解释? 可以匹配 c, 但第二个 a 无法匹配 b。提示
0 s.length, p.length 2000s 仅由小写英文字母组成p 仅由小写英文字母、? 或 * 组成
代码
#includestdio.h
#includestdlib.h
#includestring.h
#includestdbool.hbool isMatch(char * s, char * p);int main()
{char*saaa,*pa;printf(%d,isMatch(s,p));return 0;
}bool isMatch(char * s, char * p)
{int slenstrlen(s),plenstrlen(p);int sindex0,pindex0,srecord-1,precord-1;while(slenplenp[plen-1]!*){if(p[plen-1]s[slen-1]||p[plen-1]?){plen--;slen--;}else {return false;}}if(plen0){return slen0;}while(sindexslenpindexplen){if(p[pindex]*){pindex;precordpindex;srecordsindex;}else if(p[pindex]s[sindex]||p[pindex]?){pindex;sindex;}else if(srecord!-1){srecord;sindexsrecord;pindexprecord;}else {return false;}}for(;pindexplen;pindex){if(p[pindex]!*){return false;}}return true;
}