青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

FireEmissary

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  14 隨筆 :: 0 文章 :: 20 評論 :: 0 Trackbacks
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 the entire input 
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
貪心算法就是遇到*開始記錄位置并不斷嘗試匹配,開始*匹配0字符失敗后*匹配1字符再試,匹配到下一個*就終止了又開始記錄位置后嘗試匹配...
bool isMatch(string s, string p) {
        
return isMatchB(s.c_str(),p.c_str());
    }
    
 
bool isMatchB(const char *s, const char *p) {
           
const char* star=nullptr;  
            
const char* ss=nullptr;   
            
while (*s){  
                
if ((*p=='?')||(*p==*s)){++s;++p;continue;}  
                
if (*p=='*'){star=++p; ss=s;continue;}  
                
if (star){ p = star; s=++ss;}  
                
else return false;  
            }  
            
while (*p=='*'){++p;}  
            
return !*p;  

    }
遞歸版本卻是碰到*后從0開始遞增s然后調用自己直到成功或s到了尾部:  
             while(*p=='*')++p;             do              {                   if(isMatchC(s, p))                 {  return true;                 }               
            }  
while(*++s);             return isMatchC(s, p); 
算法很易懂;但沒找到證明感覺如芒在背.想了很久沒發現怎么證明貪心法是"最優"的辦法.
但后來想想證明最優干嘛?其實只要證明比遞歸版本效率并和它一樣正確就行了....
證明如下:
base
1.模式p里沒有*,平凡的匹配,遞歸版本和貪心版本一樣效率.
2.模式p里一個*,遞歸版遞歸后的匹配和貪心版本(畢竟貪心版本不會碰到*了)算法一樣.
3.模式p有兩個*
   p: same*abc*xxxxxx. (x代表任意字符和?)
  s: same....abcxxxxxxx (.代表任意不含abc的字符x代表任意字符)
貪心版本匹配到第二個*后s剩下abc后面部分,第二個*可以任意擴展使得后段的x匹配為止
遞歸版本碰到第一個*后遞歸求abc*xxxxxxx與....abcxxxxxxx匹配
看起來和貪心版本一樣效率,不效率的地方就在于:匹配失敗后貪心版本就失敗了而遞歸版本屁顛顛的又挪動s到下一個試圖匹配,
遞歸版本不會成功的,因為第二個*失敗就說明了后段的xxxxx之間子串不匹配

現在假設模式p有k個*且貪心版本更效率且一樣正確.
4.p有k+1個*.
   p: xxxx*abc*...... (.代表任意字符和*)
   s: xxxx....abcdef..... (.代表任意不含abc的字符)
在第二個*之前使用貪心算法,匹配完畢碰到第二個*轉調用遞歸版本的話,開頭匹配情況落入base 1和base 2.遞歸版本則處理:
p: *.....
s: def.....
即落入假設模式里k個*里換用貪心版本更優秀且正確的情況里了

這樣的話就歸納證明了貪心版本在正確匹配時不比遞歸版本差;在失敗時比遞歸版本效率.


  
 


posted on 2016-03-17 12:48 FireEmissary 閱讀(1306) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区欧美二区| 久久综合色影院| 精品av久久久久电影| 国产婷婷色一区二区三区在线 | 亚洲国产成人久久综合| 亚洲第一毛片| 99国产精品国产精品毛片| 在线一区免费观看| 亚洲欧美视频在线| 久久午夜色播影院免费高清| 亚洲精品网站在线播放gif| 欧美大秀在线观看| 欧美激情按摩在线| 国产精品激情电影| 国产日韩精品久久| 亚洲国产日韩精品| 一区二区电影免费观看| 亚洲综合三区| 久久综合网色—综合色88| 欧美国产精品人人做人人爱| 亚洲黄色成人网| 亚洲夜晚福利在线观看| 久久免费99精品久久久久久| 欧美久久视频| 狠狠色伊人亚洲综合成人| 亚洲欧洲在线视频| 午夜一区二区三视频在线观看| 久久男人资源视频| 亚洲福利视频免费观看| 亚洲欧美精品一区| 另类激情亚洲| 国产性猛交xxxx免费看久久| 亚洲成色777777女色窝| 亚洲欧美日韩另类| 亚洲国产一区在线观看| 欧美一级久久| 欧美日一区二区三区在线观看国产免| 国产精品一二三视频| 亚洲国产影院| 久久久久www| 亚洲免费在线观看视频| 欧美日韩国产页| 亚洲国产专区校园欧美| 久久精品日韩| 亚洲一区观看| 国产精品久久久久久久久久免费 | 久久免费精品视频| 国产欧美一区二区精品仙草咪| a4yy欧美一区二区三区| 欧美大成色www永久网站婷| 午夜精品久久| 国产精品色午夜在线观看| 一区二区三区www| 亚洲人成在线播放网站岛国| 久久综合一区二区| 在线观看视频一区二区欧美日韩 | 亚洲欧美制服另类日韩| 99国内精品| 欧美视频在线观看免费| 一本色道久久综合精品竹菊| 欧美激情精品久久久久久| 欧美护士18xxxxhd| 亚洲综合日韩在线| 亚洲天堂成人在线观看| 国产精品白丝av嫩草影院| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲欧洲一区二区在线观看| 欧美日韩欧美一区二区| 在线一区二区三区四区五区| 一区二区欧美国产| 国产精品理论片| 欧美在线你懂的| 久久激五月天综合精品| 亚洲国产高清自拍| 亚洲精品一区二区三区四区高清 | 99亚洲视频| 国产麻豆精品theporn| 久久久久久国产精品mv| 玖玖在线精品| 一区二区黄色| 欧美影院成年免费版| 在线播放一区| 日韩一级大片在线| 国产欧美一区二区三区沐欲| 久久全国免费视频| 欧美激情在线狂野欧美精品| 亚洲性人人天天夜夜摸| 久久国产99| 亚洲无人区一区| 久久激情综合网| 一区二区三区日韩精品| 欧美一级午夜免费电影| 亚洲人午夜精品| 午夜精品久久久久久99热软件| 在线免费观看一区二区三区| 日韩午夜精品| 亚洲第一区中文99精品| 亚洲视频在线观看三级| 亚洲国产欧美久久| 亚洲欧美日韩视频二区| 亚洲欧洲在线一区| 久久av老司机精品网站导航| 99国内精品久久| 久久久久国产免费免费| 亚洲自拍16p| 你懂的国产精品永久在线| 午夜在线视频一区二区区别| 欧美成人精品三级在线观看| 久久精品国产91精品亚洲| 欧美日韩精品欧美日韩精品| 久久久午夜电影| 国产精品igao视频网网址不卡日韩 | 欧美在线网址| 亚洲四色影视在线观看| 1769国内精品视频在线播放| 午夜精品福利视频| 中日韩美女免费视频网站在线观看| 久久国产精品99精品国产| 亚洲一区二区三区乱码aⅴ蜜桃女| 免费观看成人www动漫视频| 欧美在线一区二区| 亚洲精品国产系列| 嫩草成人www欧美| 久久视频在线免费观看| 国产精品久久久久久久久久尿| 91久久精品国产91久久性色| 精品1区2区3区4区| 欧美一区二区三区久久精品茉莉花| 99精品久久免费看蜜臀剧情介绍| 午夜精品久久久久久久| 性欧美xxxx视频在线观看| 国产精品v欧美精品v日韩精品| 亚洲精品日韩激情在线电影| 亚洲区一区二| 欧美紧缚bdsm在线视频| 亚洲激情视频在线| 亚洲精选中文字幕| 蜜臀av国产精品久久久久| 欧美华人在线视频| 亚洲精品无人区| 欧美日韩国产欧美日美国产精品| 亚洲国产三级| 亚洲少妇自拍| 国产毛片精品国产一区二区三区| 亚洲女同性videos| 久久裸体艺术| 亚洲激情av| 欧美三区免费完整视频在线观看| aa级大片欧美| 久久精品91久久久久久再现| 国产综合色在线视频区| 久久嫩草精品久久久久| 欧美风情在线观看| 99国产精品| 国产精品自拍在线| 久久免费一区| 一本色道久久综合亚洲精品按摩| 亚洲欧美日韩国产另类专区| 国产综合欧美在线看| 免播放器亚洲一区| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲美女91| 国产精品美女久久久浪潮软件| 亚洲欧美在线磁力| 欧美成人免费播放| 亚洲午夜精品网| 伊人精品久久久久7777| 欧美国产日韩免费| 亚洲欧美成人综合| 欧美高清成人| 欧美一区二区大片| 亚洲国产成人av在线| 国产精品久久久久一区二区三区| 欧美一级一区| 日韩视频不卡| 欧美大片第1页| 性欧美18~19sex高清播放| 亚洲大胆美女视频| 国产精品美女xx| 欧美国产一区二区在线观看| 中文一区在线| 亚洲激情社区| 欧美国产先锋| 久久久综合精品| 欧美一区二区在线| 亚洲天天影视| 日韩午夜av在线| 亚洲精华国产欧美| 黄色成人av在线| 136国产福利精品导航网址| 一本大道久久a久久精二百| 国产嫩草一区二区三区在线观看 | 亚洲免费av电影| 亚洲第一精品在线| 韩国精品主播一区二区在线观看| 国产精品地址| 欧美日韩三区| 欧美激情第1页| 欧美大片免费久久精品三p| 久久精品一本|