3295. 举报垃圾信息
给你一个字符串数组 message
和一个字符串数组 bannedWords
。
如果数组中 至少 存在两个单词与 bannedWords
中的任一单词 完全相同,则该数组被视为 垃圾信息。
如果数组 message
是垃圾信息,则返回 true
;否则返回 false
。
示例 1:
输入: message = ["hello","world","leetcode"], bannedWords = ["world","hello"]
输出: true
解释:
数组 message
中的 "hello"
和 "world"
都出现在数组 bannedWords
中。
示例 2:
输入: message = ["hello","programming","fun"], bannedWords = ["world","programming","leetcode"]
输出: false
解释:
数组 message
中只有一个单词("programming"
)出现在数组 bannedWords
中。
提示:
1 <= message.length, bannedWords.length <= 105
1 <= message[i].length, bannedWords[i].length <= 15
message[i]
和 bannedWords[i]
都只由小写英文字母组成。原站题解
php 解法, 执行用时: 434 ms, 内存消耗: 54.6 MB, 提交时间: 2024-09-23 11:35:56
class Solution { /** * @param String[] $message * @param String[] $bannedWords * @return Boolean */ function reportSpam($message, $bannedWords) { $banned = []; foreach ( $bannedWords as $word ) { $banned[$word] = true; } $seen = false; foreach ( $message as $m ) { if ( isset($banned[$m]) ) { if ( $seen ) return true; $seen = true; } } return false; } }
golang 解法, 执行用时: 320 ms, 内存消耗: 23.8 MB, 提交时间: 2024-09-23 11:29:57
func reportSpam(message, bannedWords []string) bool { banned := map[string]bool{} for _, s := range bannedWords { banned[s] = true } seen := false for _, s := range message { if banned[s] { if seen { return true } seen = true } } return false }
cpp 解法, 执行用时: 578 ms, 内存消耗: 281.8 MB, 提交时间: 2024-09-23 11:29:36
class Solution { public: bool reportSpam(vector<string>& message, vector<string>& bannedWords) { unordered_set<string> banned(bannedWords.begin(), bannedWords.end()); int cnt = 0; for (auto& s : message) { if (banned.contains(s) && ++cnt > 1) { return true; } } return false; } };
java 解法, 执行用时: 46 ms, 内存消耗: 83.6 MB, 提交时间: 2024-09-23 11:29:22
class Solution { public boolean reportSpam(String[] message, String[] bannedWords) { Set<String> banned = new HashSet<>(Arrays.asList(bannedWords)); int cnt = 0; for (String s : message) { if (banned.contains(s) && ++cnt > 1) { return true; } } return false; } }
python3 解法, 执行用时: 192 ms, 内存消耗: 49.2 MB, 提交时间: 2024-09-23 11:29:08
class Solution: def reportSpam(self, message: List[str], bannedWords: List[str]) -> bool: banned = set(bannedWords) seen = False for s in message: if s in banned: if seen: return True seen = True return False
python3 解法, 执行用时: 170 ms, 内存消耗: 49.1 MB, 提交时间: 2024-09-23 11:28:54
class Solution: def reportSpam(self, message: List[str], bannedWords: List[str]) -> bool: banned = set(bannedWords) return sum(s in banned for s in message) > 1