国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

leetcode-44. Wildcard Matching

leanxi / 1473人閱讀

摘要:正則由于的存在,所以有多種狀態(tài),中間狀態(tài)儲(chǔ)存都需要記錄下來(lái)。然后以這些狀態(tài)為動(dòng)態(tài)的中轉(zhuǎn),繼續(xù)判斷到最后。最后正則匹配字符串是否成功的判斷依據(jù),就是正則字符串的最大,是否出現(xiàn)在遍歷到最后的狀態(tài)列表中。

題目闡釋:

正則匹配字符串,用程序?qū)崿F(xiàn)

關(guān)鍵理解:

正則匹配,動(dòng)態(tài)規(guī)劃思想,一個(gè)個(gè)向后追溯,后面的依賴前面的匹配成功。
正則和待匹配的字符串長(zhǎng)度不一,統(tǒng)一到正則字符串的index索引上,每次的字符串index移動(dòng),都以匹配到的正則的index為準(zhǔn)。
正則由于*?的存在,所以有多種狀態(tài),中間狀態(tài)儲(chǔ)存都需要記錄下來(lái)。然后以這些狀態(tài)為動(dòng)態(tài)的中轉(zhuǎn),繼續(xù)判斷到最后。
最后正則匹配字符串是否成功的判斷依據(jù),就是正則字符串的最大index,是否出現(xiàn)在遍歷到最后的狀態(tài)列表中。

錯(cuò)誤之處:

多處動(dòng)態(tài)變化,導(dǎo)致無(wú)法入手,*沒有處理思路,沒有找到匹配成功的條件

應(yīng)用:

正則屬于多條路徑問題,可以推理到 多種渠道的問題,匹配成功當(dāng)前的才往后推
*相當(dāng)于無(wú)限向后匹配,所以無(wú)限循環(huán)使用,看能否匹配成功。

Wildcard Matching

Given an input string (s) and a pattern (p), 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).
Note:
s could be empty and contains only lowercase letters a-z.
p could be empty and contains only lowercase letters a-z, and characters like ? or *.
Example 1:

Input:

s = "aa"
p = "a"
Output: false
Explanation: "a" does not match the entire string "aa".

Example 2:

Input:

s = "aa"
p = "*"
Output: true
Explanation: "*" matches any sequence.

Example 3:

Input:

s = "cb"
p = "?a"
Output: false
Explanation: "?" matches "c", but the second letter is "a", which does not match "b".

Example 4:

Input:

s = "adceb"
p = "*a*b"
Output: true
Explanation: The first "" matches the empty sequence, while the second "" matches the substring "dce".

Example 5:

Input:

s = "acdcb"
p = "a*c?b"
Output: false
class Solution(object):
    def isMatch(self, s, p):
        """
        :type s: str
        :type p: str
        :rtype: bool
        """
        transfer = {}
        index=0
        for char in p:
            if char=="*":
                transfer[index,char]=index
            else:
                transfer[index,char]=index+1
                index+=1
        accept=index

        # index=0
        state = {0}
        for char in s:
            state_tmp=set()
            for index in state:
                for char_prob in [char,"?","*"]:
                    index_next=transfer.get((index,char_prob))
                    state_tmp.add(index_next)
            state=state_tmp
        return accept in state


if __name__=="__main__":
    s = "acdcb"
    p = "a*c?b"
    p = "a**c?d"
    st=Solution()
    out=st.isMatch(s,p)
    print(out)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42165.html

相關(guān)文章

  • Leetcode 44 Wildcard Matching 通配符匹配

    摘要:難度題目給出一個(gè)字符串和一個(gè)要求我們給出這個(gè)字符串是否匹配這個(gè)其中通配符跟我們平常見到的一樣是和代表任意單個(gè)字符代表一個(gè)或多個(gè)字符這個(gè)題跟簡(jiǎn)單正則匹配比較類似可以跟這里面第二個(gè)解法一樣采取類似的動(dòng)態(tài)規(guī)劃解法在里取中間某個(gè)確定的字符串序列將字 Implement wildcard pattern matching with support for ? and *. ? Matches ...

    SimonMa 評(píng)論0 收藏0
  • [Leetcode] Wildcard Matching 通配符匹配

    摘要:當(dāng)我們遇到一個(gè)時(shí),因?yàn)橹罂赡芤嘶刂猎撐恢弥匦缕ヅ洌覀円獙⑺南聵?biāo)記錄下來(lái),比如。但是,當(dāng)我們連續(xù)遇到兩次的情況,如何保證我還是能繼續(xù)匹配,而不是每次都退回導(dǎo)致循環(huán)呢所以我們還要記錄一個(gè),用來(lái)記錄用上一個(gè)連續(xù)匹配到的中的下標(biāo)。 Wildcard Matching Implement wildcard pattern matching with support for ? and ...

    tainzhi 評(píng)論0 收藏0
  • [LintCode/LeetCode] Wildcard Matching

    摘要:遞歸和動(dòng)規(guī)的方法沒有研究,說(shuō)一下較為直觀的貪心算法。用和兩個(gè)指針分別標(biāo)記和進(jìn)行比較的位置,當(dāng)遍歷完后,若也遍歷完,說(shuō)明完全配對(duì)。當(dāng)之前出現(xiàn)過,且此時(shí)和完全無(wú)法配對(duì)的時(shí)候,就一起退回在和配對(duì)過的位置。再將和逐個(gè)加繼續(xù)比較,并將后移。 Problem Implement wildcard pattern matching with support for ? and *. ? Matche...

    Ethan815 評(píng)論0 收藏0
  • Wildcard Matching

    摘要:題目鏈接這道題還是可以用的方法,用的數(shù)組來(lái)解,空間復(fù)雜度較高。和不同,這道題的符號(hào)和前面的沒有關(guān)系,不需要一起考慮。最壞的情況下,間隔出現(xiàn)且每個(gè)都要匹配很多字符,設(shè)一個(gè)平均匹配里面?zhèn)€字符,。其中,是的長(zhǎng)度,是的長(zhǎng)度。 Wildcard Matching 題目鏈接:https://leetcode.com/problems...這道題還是可以用Regular Expression Mat...

    galaxy_robot 評(píng)論0 收藏0
  • LC44 wildcard matching

    摘要:各一個(gè)指針,表示上一次真正到的位置。在的時(shí)候,上,增加下一步知道出界,發(fā)現(xiàn)是錯(cuò)誤的所以需要回到上次的地方,即一旦走出去,無(wú)法返回,需要一個(gè)指針記錄最后的地方。 public class Solution { public boolean isMatch(String s, String p) { int idxs = 0, idxp = 0, idxmatch ...

    Tychio 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<