(java)leetcode771 寶石與石頭(Jewels and Stones)
阿新 • • 發佈:2018-11-01
題目描述:
給定字串J
代表石頭中寶石的型別,和字串 S
代表你擁有的石頭。 S
中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。
J
中的字母不重複,J
和 S
中的所有字元都是字母。字母區分大小寫,因此"a"
和"A"
是不同型別的石頭。
示例1 :
Input: J = "aA", S = "aAAbbbb"
Output: 3
示例2:
Input: J = "z", S = "ZZ"
Output: 0
注意:
S
和J
最多含有50個字母。-
J
中的字元不重複。
解題思路:
迴圈取出字串S中的每一個字元,然後去判斷這個字元是否存在於字串J中,若存在,則統計數加1;
因為寶石型別的值是唯一的,set儲存值也是唯一的,所以這裡先將寶石型別的每一個字元儲存到set中 ,然後去判斷字串S中的字元是否存在於set中。
程式碼實現(java):
class Solution { public int numJewelsInStones(String J, String S) { //儲存寶石數目 int num=0; //儲存寶石型別 Set set = new HashSet(); //將字串轉成寶字元陣列 char[] JJ=J.toCharArray(); for(char c1:JJ){ set.add(c1); } char[] SS=S.toCharArray(); //迴圈判斷擁有的石頭是否是寶石 for(char c2:SS){ if(set.contains(c2)) num++; } return num; } }
本人才疏學淺,若有錯誤或更好的方法,歡迎在評論中指出,共同進步