您的位置:首页 > 其它

771. Jewels and Stones

2018-02-11 15:12 417 查看
You're given strings 
J
 representing the types of stones that are jewels, and 
S
 representing the stones you have.  Each character in 
S
is a type of stone you have.  You want to know how many of the stones you have are also jewels.The letters in 
J
 are guaranteed distinct, and all characters in 
J
 and 
S
 are letters. Letters are case sensitive, so 
"a"
 is considered a different type of stone from 
"A"
.Example 1:Input: J = "aA", S = "aAAbbbb"
Output: 3
Example 2:Input: J = "z", S = "ZZ"
Output: 0一个简单的查找字符串指定字符数量的问题class Solution {

public int numJewelsInStones(String J, String S) {
int num=0;
for(int i=0;i<J.length();i++){
String k = String.valueOf(J.charAt(i));
num += numJewels(k,S);
}
return num;
}
public static int numJewels(String J, String S){
if(S.indexOf(J)==-1){
return 0;
}else{

return numJewels(J,S.substring(S.indexOf(J)+1)) +1;
}
}
}中规中矩的写法,使用indexOf确定字符所在位置并且不断删减字符串长度进行计算class Solution {

public int numJewelsInStones(String J, String S) {

int sum=0;
Set signNum = new HashSet();
for(char i:J.toCharArray())signNum.add(i);
for(char j:S.toCharArray()){
if(signNum.contains(j))
sum++;
}
return sum;
}

}使用集合简单将珠宝组放入集合遍历石头组得出答案
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: