字串通配

2021-08-21 19:27:32 字數 871 閱讀 7519

題目描述

對於字串a,其中絕對不含有字元』.』和』』。再給定字串b,其中可以含有』.』或』』,』』字元不能是b的首字元,並且任意兩個』』字元不相鄰。exp中的』.』代表任何乙個字元,b中的』』表示』』的前乙個字元可以有0個或者多個。請寫乙個函式,判斷a是否能被b匹配。

給定兩個字串a和b,同時給定兩個串的長度lena和lenb,請返回乙個bool值代表能否匹配。保證兩串的長度均小於等於300。

測試樣例:

「abcd」,4,」.*」,2

返回:true

/*

分析: 採用動態規劃

dp[i][j] 代表str1[0~i-1]和str2[0~j-1]是否匹配

首先考慮特殊情況:

dp[0][0]:空串和空串認為是匹配的

dp[0][0] = true;

dp[0][j] = false;

dp[i][0] = false;

一般情況:

dp[i][j]有如下情況

1) 如果str2[j-1] == '*'

dp[i][j] = dp[i-1][j] || dp[i][j-1] || dp[i-1][j-1]

2) 如果str2[j-1] == '.'

dp[i][j] = dp[i-1][j-1];

3) 如果str2[j-1]為其他值

dp[i][j] = dp[i-1][j-1] && str1[i-1] == str2[j-1]

*/bool chkwildmatch(string a, int lena, string b, int lenb)

}return dp[lena][lenb];

}

字串通配 正規表示式

對於字串a,其中絕對不含有字元 和 再給定字串b,其中可以含有 或 字元不能是b的首字元,並且任意兩個 字元不相鄰。exp中的 代表任何乙個字元,b中的 表示 的前乙個字元可以有0個或者多個。請寫乙個函式,判斷a是否能被b匹配。給定兩個字串a和b,同時給定兩個串的長度lena和lenb,請返回乙個b...

字串萬用字元

問題描述 在計算機中,萬用字元一種特殊語法,廣泛應用於檔案搜尋 資料庫 正規表示式等領域。現要求各位實現字串萬用字元的演算法。要求 實現如下2個萬用字元 匹配0個或以上的字元 字元由英文本母和數字0 9組成,不區分大小寫。下同 匹配1個字元 輸入 萬用字元表示式 一組字串。輸出 返回匹配的結果,正確...

字串 字串萬用字元

字串萬用字元 描述 問題描述 在計算機中,萬用字元一種特殊語法,廣泛應用於檔案搜尋 資料庫 正規表示式等領域。現要求各位實現字串萬用字元的演算法。要求 實現如下2個萬用字元 匹配0個或以上的字元 字元由英文本母和數字0 9組成,不區分大小寫。下同 匹配1個字元 輸入 萬用字元表示式 一組字串。輸出 ...