Medium
You are given an array of strings message
and an array of strings bannedWords
.
An array of words is considered spam if there are at least two words in it that exactly match any word in bannedWords
.
Return true
if the array message
is spam, and false
otherwise.
Example 1:
Input: message = [“hello”,”world”,”leetcode”], bannedWords = [“world”,”hello”]
Output: true
Explanation:
The words "hello"
and "world"
from the message
array both appear in the bannedWords
array.
Example 2:
Input: message = [“hello”,”programming”,”fun”], bannedWords = [“world”,”programming”,”leetcode”]
Output: false
Explanation:
Only one word from the message
array ("programming"
) appears in the bannedWords
array.
Constraints:
1 <= message.length, bannedWords.length <= 105
1 <= message[i].length, bannedWords[i].length <= 15
message[i]
and bannedWords[i]
consist only of lowercase English letters.import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Solution {
public boolean reportSpam(String[] message, String[] bannedWords) {
Set<String> bannedUnique = new HashSet<>(Arrays.asList(bannedWords));
int bannedCount = 0;
for (String msg : message) {
if (bannedUnique.contains(msg)) {
bannedCount++;
}
if (bannedCount == 2) {
return true;
}
}
return false;
}
}