這篇文章主要為大家展示了“如何解決leetcode中寶石與石頭的問題”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何解決leetcode中寶石與石頭的問題”這篇文章吧。
創(chuàng)新互聯(lián)是一家專業(yè)提供渾源企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為渾源眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
https://leetcode-cn.com/problems/jewels-and-stones/
給定字符串 J
代表石頭中寶石的類型,和字符串 S
代表你擁有的石頭。 S
中每個(gè)字符代表了一種你擁有的石頭的類型,你想知道你擁有的石頭中有多少是寶石。
J
中的字母不重復(fù),J
和 S
中的所有字符都是字母。字母區(qū)分大小寫,因此"a"
和"A"
是不同類型的石頭。
示例 1:
輸入: J = "aA", S = "aAAbbbb"
輸出: 3
示例 2:
輸入: J = "z", S = "ZZ"
輸出: 0
注意:
S 和 J 最多含有50個(gè)字母。
J 中的字符不重復(fù)。
標(biāo)簽:字符串
首先對(duì)J進(jìn)行遍歷,將字符分別存到HashSet中,以便之后遍歷S的時(shí)候查找
遍歷S,并將每個(gè)字符與HashSet中的進(jìn)行比對(duì),如果存在,則結(jié)果ans++,遍歷結(jié)束,返回ans
時(shí)間復(fù)雜度:O(m+n),m為J的長(zhǎng)度,n為S的長(zhǎng)度
Java版本
class Solution {
public int numJewelsInStones(String J, String S) {
Set set = new HashSet<>();
for(int i = 0; i < J.length(); i++) {
set.add(J.charAt(i));
}
int ans = 0;
for(int i = 0; i < S.length(); i++) {
if(set.contains(S.charAt(i))){
ans++;
}
}
return ans;
}
}
JavaScript版本
/**
* @param {string} J
* @param {string} S
* @return {number}
*/
var numJewelsInStones = function(J, S) {
const set = new Set();
for(const s of J) {
set.add(s);
}
let ans = 0;
for(const s of S) {
if(set.has(s)){
ans++;
}
}
return ans;
};
以上是“如何解決leetcode中寶石與石頭的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!