中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

吳江和城鄉(xiāng)建設(shè)局網(wǎng)站關(guān)鍵信息基礎(chǔ)設(shè)施安全保護(hù)條例

吳江和城鄉(xiāng)建設(shè)局網(wǎng)站,關(guān)鍵信息基礎(chǔ)設(shè)施安全保護(hù)條例,家裝公司排名前十,如何開(kāi)發(fā)網(wǎng)站建設(shè)業(yè)務(wù)10. 正則表達(dá)式匹配(困難) 題解 如果從左向右進(jìn)行匹配的話,需要考慮字符后是否有 * 。 因此選擇從右向左掃描更為簡(jiǎn)單。 *前面肯定有一個(gè)字符,它像是一個(gè)拷貝器,能夠復(fù)制前面的單個(gè)字符,甚至也可以把這個(gè)…

10. 正則表達(dá)式匹配(困難)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

  1. 題解

    • 如果從左向右進(jìn)行匹配的話,需要考慮字符后是否有 * 。

      在這里插入圖片描述

    • 因此選擇從右向左掃描更為簡(jiǎn)單。

      *前面肯定有一個(gè)字符,它像是一個(gè)拷貝器,能夠復(fù)制前面的單個(gè)字符,甚至也可以把這個(gè)字符消除(出現(xiàn) 0 次)。

      兩個(gè)字符串是否匹配,取決于最右邊的字符是否匹配,以及剩余的子串是否匹配。其中,「剩余的子串是否匹配」,就是本道題的子問(wèn)題。

      在這里插入圖片描述

    • 狀態(tài)定義:定義 dp[i][j] 為第一個(gè)字符串到 i 為止,第二個(gè)字符串到 j 為止,兩個(gè)字符串是否匹配。如果匹配,dp[i][j] = true;如果不匹配,dp[i][j] = false。

    • 子問(wèn)題的考慮

      • 情況一:s[i-1] 和 p[j-1] 匹配,即 s[i-1] == p[j-1] || p[j-1] == '.'。那么只需要考慮剩余的子串是否匹配,即 dp[i][j] = dp[i-1][j-1];

        在這里插入圖片描述

      • 情況二:s[i-1] 和 p[j-1] 不匹配。這時(shí)候不能直接認(rèn)為兩個(gè)字符串不匹配,而是需要進(jìn)一步考慮 p[j-1] == '*' 的情況。但是如果不是 * ,那么肯定不匹配。

        在這里插入圖片描述

        對(duì)于 * ,它可以匹配 0 個(gè)或多個(gè)字符。當(dāng)s[i-1] 和 p[j-2] 匹配,且 p[j-1] == ‘*’ 時(shí),需要考慮三種情況: * 使 dp[j-2] 出現(xiàn) 0 次、1 次或 >=2次。只要其中一種情況能使得兩個(gè)子串匹配,我們就可以繼續(xù)考慮剩余子串是否匹配。狀態(tài)轉(zhuǎn)移方程為:dp[i][j] = dp[i][j-2] || dp[i-1][j-2] || dp[i-1][j];

        在這里插入圖片描述
        當(dāng)s[i-1] 和 p[j-2] 不匹配,且 p[j-1] == ‘*’ 時(shí),可以利用 * 消除不匹配字符 p[j-2],考慮 s[i-1] 和 p[j-3] 是否匹配。狀態(tài)轉(zhuǎn)移方程為:dp[i][j] = dp[i][j-2];。

    • 初始情況:當(dāng)兩個(gè)字符串都是空串的時(shí)候,一定匹配,因此 dp[0][0] = true; ;當(dāng) s 為空時(shí),如果 p 的右端字符是 * ,那么就可以使得 p 也變成空串;當(dāng) p 為空,兩個(gè)字符串一定不匹配。

  2. 代碼

    class Solution {
    public:bool isMatch(string s, string p) {int m = s.size(), n = p.size();vector<vector<bool>> dp(m+1, vector<bool>(n+1, false));// 兩個(gè)空字符串一定匹配dp[0][0] = true;// 如果s為空串 p[j-1]=* 也能夠匹配for(int j=1; j<=n; ++j){if(p[j-1] == '*'){dp[0][j] = dp[0][j-2];}}// 從右向左匹配for(int i=1; i<=m; ++i){for(int j=1; j<=n; ++j){// s[i-1]和p[j-1]匹配if(s[i-1] == p[j-1] || p[j-1] == '.'){dp[i][j] = dp[i-1][j-1];}// s[i-1]和p[j-1]不匹配else{// p[j-1] == '*' 且 s[i-1]和p[j-2]匹配if(p[j-1] == '*'){dp[i][j] = dp[i][j-2];if(s[i-1] == p[j-2] || p[j-2] == '.'){dp[i][j] = dp[i][j-2] || dp[i-1][j-2] || dp[i-1][j];}}}}}return dp[m][n];}
    };
    
  3. 收獲

    • 理解錯(cuò)了 * 的意思,* 類似于一個(gè)拷貝器 ,能匹配前一個(gè)元素,也能消除前一個(gè)元素(匹配零個(gè))。
    • 這道題需要考慮多種情況,感覺(jué)很難想得這么全面。
http://www.risenshineclean.com/news/50611.html

相關(guān)文章:

  • 企業(yè)網(wǎng)站 流程推廣產(chǎn)品怎么發(fā)朋友圈
  • 做網(wǎng)站要看什么書(shū)百度搜索廣告收費(fèi)標(biāo)準(zhǔn)
  • 做問(wèn)卷的幾個(gè)網(wǎng)站如何優(yōu)化關(guān)鍵詞的排名
  • 國(guó)家建設(shè)部人才交流中心網(wǎng)站廣告公司收費(fèi)價(jià)格表
  • 免費(fèi)單頁(yè)網(wǎng)站在線制作營(yíng)銷軟文500字
  • dw做網(wǎng)站小技巧東莞網(wǎng)絡(luò)營(yíng)銷公司
  • 如何創(chuàng)建一個(gè)平臺(tái)型公司優(yōu)化網(wǎng)站seo策略
  • 廣州網(wǎng)站制作公司優(yōu)化百度競(jìng)價(jià)查詢
  • 企業(yè)網(wǎng)站建設(shè)公司排名河南省網(wǎng)站
  • 紅河州網(wǎng)站建設(shè)制作深圳市企業(yè)網(wǎng)站seo營(yíng)銷工具
  • 廊坊網(wǎng)站建設(shè)外包如何網(wǎng)絡(luò)媒體推廣
  • 郴州網(wǎng)站設(shè)計(jì)較好的公司東莞網(wǎng)絡(luò)優(yōu)化公司
  • 新手做網(wǎng)站教程seo關(guān)鍵詞布局案例
  • wordpress文章隱藏內(nèi)容seo資訊網(wǎng)
  • 如何做發(fā)表文章的網(wǎng)站百度推廣計(jì)劃
  • 同一產(chǎn)品做多個(gè)網(wǎng)站江門(mén)網(wǎng)站開(kāi)發(fā)多少錢(qián)
  • 微商城網(wǎng)站開(kāi)發(fā)網(wǎng)絡(luò)推廣的工作內(nèi)容
  • 個(gè)人工作室網(wǎng)站模板武漢seo托管公司
  • 手機(jī)網(wǎng)站開(kāi)發(fā)之列表開(kāi)發(fā)成人營(yíng)銷管理培訓(xùn)班
  • 哪家公司做網(wǎng)站便宜網(wǎng)絡(luò)營(yíng)銷推廣系統(tǒng)
  • 網(wǎng)站開(kāi)發(fā)的發(fā)展的前景專業(yè)提升關(guān)鍵詞排名工具
  • webhost wordpressseo關(guān)鍵詞搜索優(yōu)化
  • 網(wǎng)站建設(shè)湖南青島網(wǎng)站優(yōu)化公司
  • 備案沒(méi)有商城可以做商城網(wǎng)站嗎中國(guó)今日新聞
  • 實(shí)力網(wǎng)站建設(shè)百度打開(kāi)
  • 自己怎么做視頻網(wǎng)站百度快照優(yōu)化排名推廣
  • 濮陽(yáng)做網(wǎng)站的公司有哪些谷歌搜索引擎下載
  • 特效相冊(cè)網(wǎng)站源碼百度app官網(wǎng)下載安裝
  • 做網(wǎng)站實(shí)現(xiàn)登陸功能十八大禁用黃app入口
  • 做教育app的網(wǎng)站有哪些百度最新版下載