1. 程式人生 > >劍指offer---正則表達式匹配

劍指offer---正則表達式匹配

表達式 都是 igui true log pub 問題 code urn

//遞歸做的 開始用動態規劃做 類似通配符問題 總感覺有問題 答案裏面用dp做的多多少少有點問題
//估計是我水平太低
//只是其中一個帶符號!
class Solution 
{
public:
    bool match(char* str, char* pattern)
    {
        if(str==NULL||pattern==NULL)
        {
            return false;
        }
        return digui(str,pattern);
    }
    bool digui(char* str,char* pattern)
    {
        
//出口條件 if(*str==\0&&*pattern==\0) return true; //因為‘.‘和‘*‘都是在pattern中 所以以下這種情況必然為FALSE if(*str!=\0&&*pattern==\0) return false; //如果有星號 看星號前面這個元素是否相等 if(*(pattern+1)==*) { if((*pattern==*str)||(*pattern==
.&&*str!=\0)) { //星號前面的相等了 return (digui(str,pattern+2)||digui(str+1,pattern)); //為什麽不是digui(str+1,pattern+1) //因為字母加星號是有可能對應str中連續多個元素的 } else { //不一樣就很簡單了 return
digui(str,pattern+2); } } if(*str==*pattern||(*pattern=.&&*str!=\0)) { return digui(str+1,pattern+1); } return false; } };

劍指offer---正則表達式匹配