Wildcard Matching 外卡匹配

2021-08-18 13:34:01 字數 1454 閱讀 8588

implement wildcard pattern matching with support for'?'and'*'.

'?' matches any single character.

'*' matches any sequence of characters (including the empty sequence).

the matching should cover theentireinput string (not partial).

the function prototype should be:

bool ismatch(const char *s, const char *p)

some examples:

ismatch("aa","a") → false

ismatch("aa","aa") → true

ismatch("aaa","aa") → false

ismatch("aa", "*") → true

ismatch("aa", "a*") → true

ismatch("ab", "?*") → true

ismatch("aab", "c*a*b") → false

時間 o(n) 空間 o(1)

p中的字元是?,這時無論s的字元是什麼都可以匹配乙個

p中遇到了乙個*,這時無論s的字元是什麼都沒關係

之前的都不符合,但是p在之前的位置有乙個*,我們可以從上乙個*後面開始匹配 (例:s=ab,p=?*c,此時我們就要用b之後的字元去匹配c)

s已經匹配完,但是p後面還有很多連續的`*.

具體演算法如下:

- 定義scur, pcur, sstar, pstar

- 如果*scur存在

- 如果*scur等於*pcur或者*pcur為 '?',則scur和pcur都自增1

- 如果*pcur為'*',則pstar指向pcur位置,pcur自增1,且sstar指向scur

- 如果pstar存在,則pcur指向pstar的下乙個位置,scur指向sstar自增1後的位置

- 如果pcur為'*',則pcur自增1

- 若*pcur存在,返回false,若不存在,返回true

實現**:

class solution  

else 

if (*pcur == '*')

else 

if (pstar) 

else 

return false;

} while (*pcur == '*') ++pcur;

//如果s與p比較結束,p還有剩餘的,一直遍歷結束;

return !*pcur;  

//剩下的只能全為'*';}};

Wildcard Matching 萬用字元匹配

題目要求 implement wildcard pattern matching with support for and matches any single character.matches any sequence of characters including the empty sequ...

外卡收單或海外支付

按照支付服務提供商的不同,分成幾種模式 1 國內支付公司提供的外卡收單 國際卡收單 ips 環迅支付 http ips.com.cn payease 首信易支付 http beijing.com.cn chinabank.com.cn ecpss 匯潮支付 http ecpss.com 95epay...

市場混亂真假外教難辨?阿卡索重視外教師源

隨著 網際網路 教育 的發展,傳統的課外輔導模式越來越難以滿足學生的個性化課外輔導需求,而網際網路的發展催生了很多優質的 教育平台。如今,教育行業已是一片紅海,如何突出重圍?重點在於優質的外教師源。雖然現下大部分機構都宣稱自家是百分百歐美外教,但是 外行看熱鬧,內行看門道 家長們身處行業外,無法了解...