剛開始很奇怪為什麼這個題的標籤是困難,然後寫了出來發現我寫出來的只針對從頭到尾都一樣,而不是如示例4,可以匹配一部分。
示例 4:
輸入:s = "aab"
p = "c*a*b"
輸出: true
解釋: 因為 '*' 表示零個或多個,這裡 'c' 為 0 個, 'a' 被重複一次。因此可以匹配字串 "aab"。
只針對從頭到尾相同的字串的程式奉上,可能會有用,本題中通過了357 / 447個測試用例
class solution
}
c++
學會使用string的substr函式
這個答案也不對,,,,我已經不太理解題目的意思了、
分為下邊幾部分
p為空p長為1
p長為2且第二個字元是『*』
p長為2且第二個字元不是『*「
class solution
}if(p.empty())
else if(p.length()==1)
else if(p[1]!='*')
return ((s[0]==p[0]||p[0]=='.')&&ismatch(s.substr(1),p.substr(1)));
}else
}return ismatch(s,p.substr(2));}}
};
10 正規表示式匹配
implement regular expression matching with support for and matches any single character.matches zero or more of the preceding element.the matching sho...
10 正規表示式匹配
思路類似最長公共子串行,dp i j dp i 1 j 1 如果s i p j p j dp i j 2 如果p j s i p j 1 dp i 1 j dp i j 1 dp i 1 j 1 dp i 1 j 2 dp i j 2 如果p j s i p j 1 稍稍解釋下 對於s和p,設各個最...
10 正規表示式匹配
給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字母,以及字元 和 示例...