麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

LeetCode Wildcard Matching

2019-11-11 04:51:26
字體:
來源:轉載
供稿:網友

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") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") → falseisMatch("aa", "*") → trueisMatch("aa", "a*") → trueisMatch("ab", "?*") → trueisMatch("aab", "c*a*b") → false

思路一:

代碼如下:

class Solution {public:    bool isMatch(string s, string p) {        int sIndex=0,pIndex=0,match=0,starIdx=-1;        while(sIndex < s.length())        {            if(pIndex < p.length() && (p[pIndex] == '?' || p[pIndex] == s[sIndex]))            {                pIndex++;                sIndex++;            }            else if(pIndex < p.length() && p[pIndex] == '*')            {                starIdx = pIndex;                pIndex++;                match = sIndex;            }            else if(starIdx!=-1)            {                pIndex = starIdx+1;                match++;                sIndex = match;            }            else                return false;        }                while(pIndex<p.length() && p[pIndex] == '*')            pIndex++;                    return pIndex == p.length();    }};

思路二:使用大殺器 -動態規劃,列出動態方程如下:

if p[j-1] != '*', then dp[i][j] = dp[i-1][j-1] && (s[i-1] == p[j-1] || p[j-1] == '?')

if p[j-1] == '*', then dp[i][j] = dp[i-1][j] || dp[i][j-1]

需要注意的是dp方程組的初始化,dp[0][i](i=1,2,3...)根據p來進行,因為*可以代表空,所以當開頭字串為*時,需要在dp[0][i]中相應位置設為true。 最后dp[0][0]設置為true

代碼如下:

class Solution {public:    bool isMatch(string s, string p) {            int m = s.length(),n=p.length();        bool dp[m+1][n+1];        memset(dp,false,sizeof(bool)*(m+1)*(n+1));        dp[0][0] = true;        for(int i=1;i<=n;i++)        {           if(p[i-1] == '*')                dp[0][i] = true;            else                break;        }                                for(int i=1;i<=m;i++)            for(int j=1;j<=n;j++)            {                if(p[j-1] != '*')                    dp[i][j] = dp[i-1][j-1] && (s[i-1] == p[j-1] || p[j-1] == '?');                else if(p[j-1] == '*')                    dp[i][j] = dp[i-1][j] || dp[i][j-1];            }        return dp[m][n];    }};


上一篇:unsafe 包

下一篇:WPF實戰之路

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久99精品久久久久久久久久久久 | 日韩中文字幕一区二区三区 | 夜夜b | 国产深夜福利视频在线播放 | aa国产视频一区二区 | 国产精品视频一区二区三区四 | 爱操视频 | 久久精品视频日本 | 一级爱片 | 嫩草影院在线观看网站成人 | 噜噜社| 香蕉久久久| 黄网站免费在线看 | 国产宾馆3p国语对白 | 91午夜免费视频 | 国产精品亚洲综合 | 99re热精品视频 | 中文字幕精品一二三四五六七八 | 91看片成人 | 97精品国产高清在线看入口 | 亚州欧美在线 | 国产亚洲美女精品久久久2020 | 久久久久久亚洲国产精品 | sese在线视频 | 国产三级精品最新在线 | 久久精品视频黄色 | 2021国产精品视频 | 九九福利视频 | 国产成人精品区一区二区不卡 | 欧美一级特黄aaaaaaa什 | 黄色羞羞视频在线观看 | 国产精品久久久久久久娇妻 | 欧美另类视频在线 | 中国国语毛片免费观看视频 | 激情九九 | 狠狠婷婷综合久久久久久妖精 | 小视频免费在线观看 | 日韩一级片黄色 | 一级α片免费看刺激高潮视频 | 中文字幕在线一 | 97黄色网 |