010 正規表示式匹配
給定乙個字串 (s) 和乙個字元模式 §。實現支援 『.』 和 『』 的正規表示式匹配。
『.』 匹配任意單個字元。
'』 匹配零個或多個前面的元素。
匹配應該覆蓋整個字串 (s) ,而不是部分字串。
說明:s 可能為空,且只包含從 a-z 的小寫字母。
p 可能為空,且只包含從 a-z 的小寫字母,以及字元 . 和 *。
示例 1:
輸入:s = 「aa」
p = 「a」
輸出: false
解釋: 「a」 無法匹配 「aa」 整個字串。
示例 2:
輸入:s = 「aa」
p = 「a*」
輸出: true
解釋: 『』 代表可匹配零個或多個前面的元素, 即可以匹配 『a』 。因此, 重複 『a』 一次, 字串可變為 「aa」。
示例 3:
輸入:s = 「ab」
p = "."
輸出: true
解釋: "." 表示可匹配零個或多個(』』)任意字元(』.』)。
示例 4:
輸入:s = 「aab」
p = 「cab」
輸出: true
解釋: 『c』 可以不被重複, 『a』 可以被重複一次。因此可以匹配字串 「aab」。
示例 5:
輸入:s = 「mississippi」
p = 「misisp*.」
輸出: false
思路:用動態規劃,要分好幾種情況
dp表示boolean型別陣列,是否能匹配
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]
**:
public static boolean ismatch(string s, string p)
if(p.charat(j - 1) == '*') else }}
}return matched[ns - 1][np - 1];
}
注意:要考慮全思路,特別是為*時,前面是否要取,自己是否也取… 求眾數 leetcode 刷題010
給定乙個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在眾數。示例 1 輸入 3,2,3 輸出 3 示例 2 輸入 2,2,1,1,1,2,2 輸出 2 乍一看,這道題思路清晰,而且題目還給出提示,照理來說,應該這樣寫 c...
Leetcode 正規表示式匹配
給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字母,以及字元 和 示例...
leetcode正規表示式匹配
暴力求解 動態規劃,如果p j s i 那麼dp i j dp i 1 j 1 意思就是說,如果p的第j個字元和s的第i個字元匹配上了,那麼dp i j 是否為true取決於dp i 1 j 1 如果p j 那麼p j 此時就可以匹配任意字元,情況就和1一樣了,dp i j dp i 1 j 1 如...