close

題目如下 (取自Leetcode並自行隨意翻譯)

從S字串中,找出J字串裡面包含的所有字元的個數。

Example 1

J字串中包含a、A兩種字元;而在S字串中有1個a,2個A因此答案為1+2=3

Example 1:

Input: J = "aA", S = "aAAbbbb"
Output: 3

Example 2:

Input: J = "z", S = "ZZ"
Output: 0

 

在discuss看到有大大只用一行的程式碼寫出,看完實在是驚呼連連(我見識淺薄

public int numJewelsInStones(String J, String S) {
    return S.replaceAll("[^" + J + "]", "").length();
}

也因為看到這個解答,了解了正規表達式的用法,"^"符號代表except, 例如[^abc] 代表這個字元是除了"a" "b" "c"以外的

 

<參考資料來源>  

正規表達式:https://www.javaworld.com.tw/jute/post/view?bid=20&id=130126&sty=1&tpg=1&age=0
一行solution:https://leetcode.com/problems/jewels-and-stones/discuss/113574/1-liners-PythonJavaRuby

arrow
arrow
    全站熱搜

    ♥Weiwei♥ 發表在 痞客邦 留言(0) 人氣()