在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ We are given two sentences A word is uncommon if it appears exactly once in one of the sentences, and does not appear in the other sentence. Return a list of all uncommon words. You may return the list in any order. Example 1: Input: A = Example 2: Input: A = Note:
给定两个句子 如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。 返回所有不常用单词的列表。 您可以按任何顺序返回列表。 示例 1: 输入:A = "this apple is sweet", B = "this apple is sour" 输出:["sweet","sour"] 示例 2: 输入:A = "apple apple", B = "banana" 输出:["banana"] 提示:
8ms 1 class Solution { 2 func uncommonFromSentences(_ A: String, _ B: String) -> [String] { 3 var occurences = [String: Int]() 4 let addSubstringToOccurences = { (substring: Substring) -> Void in 5 let word = String(substring) 6 occurences[word] = (occurences[word] ?? 0) + 1 7 } 8 9 A.split(separator: " ").forEach(addSubstringToOccurences) 10 B.split(separator: " ").forEach(addSubstringToOccurences) 11 12 return Array(occurences.filter { $1 == 1 }.keys) 13 } 14 } 12ms 1 class Solution { 2 func uncommonFromSentences(_ A: String, _ B: String) -> [String] { 3 var result : [String] = [] 4 var DictA : [String:Int] = [:] 5 var DictB : [String:Int] = [:] 6 var wordsA = A.components(separatedBy: " ") 7 var wordsB = B.components(separatedBy: " ") 8 9 for word in wordsA { 10 if var count = DictA[word] { 11 DictA[word] = count + 1 12 } else { 13 DictA[word] = 1 14 } 15 } 16 17 for word in wordsB { 18 if var count = DictB[word] { 19 DictB[word] = count + 1 20 } else { 21 DictB[word] = 1 22 } 23 } 24 25 for key in DictA.keys { 26 if DictA[key] == 1 && DictB[key] == nil { 27 result.append(key) 28 } 29 } 30 31 for key in DictB.keys { 32 if DictB[key] == 1 && DictA[key] == nil { 33 result.append(key) 34 } 35 } 36 37 return result 38 } 39 } 16ms 1 class Solution { 2 func uncommonFromSentences(_ A: String, _ B: String) -> [String] { 3 let str = A + " " + B 4 var dic = Dictionary<String,Int>() 5 var result = [String]() 6 let subStr = str.split(separator: " ") 7 let subs = subStr.map { String($0)} 8 for sub in subs { 9 if nil == dic[sub] { 10 dic[sub] = 1 11 } else { 12 dic[sub] = dic[sub]! + 1 13 } 14 } 15 dic.filter { (arg0) -> Bool in 16 17 let (key, value) = arg0 18 if value == 1 { 19 result.append(key) 20 return true 21 } else { 22 return false 23 } 24 } 25 return result 26 } 27 } Runtime: 20 ms
Memory Usage: 20.3 MB
1 class Solution { 2 func uncommonFromSentences(_ A: String, _ B: String) -> [String] { 3 var count:[String:Int] = [String:Int]() 4 var arr:[String] = (A + " " + B).components(separatedBy:" ") 5 for w in arr 6 { 7 count[w,default:0] += 1 8 } 9 var res:[String] = [String]() 10 for w in count.keys 11 { 12 if count[w,default:0] == 1 13 { 14 res.append(w) 15 } 16 } 17 return res 18 } 19 } 24ms 1 class Solution { 2 func uncommonFromSentences(_ A: String, _ B: String) -> [String] { 3 4 var wordCountDict: [Substring : Int] = [:] 5 6 for word in A.split(separator: " ") { 7 wordCountDict[word] = (wordCountDict[word] ?? 0) + 1 8 } 9 10 for word in B.split(separator: " ") { 11 wordCountDict[word] = (wordCountDict[word] ?? 0) + 1 12 } 13 14 var answer: [String] = [] 15 16 for (word, count) in wordCountDict { 17 if count == 1 { 18 answer.append(String(word)) 19 } 20 } 21 22 return answer 23 } 24 } 32ms 1 class Solution { 2 func uncommonFromSentences(_ A: String, _ B: String) -> [String] { 3 let words = A.split(separator: " ").map { String($0) } + B.split(separator: " ").map { String($0) } 4 var countDict = [String: Int]() 5 6 for word in words { 7 countDict[word] = (countDict[word] ?? 0) + 1 8 } 9 10 return countDict.filter { $0.value == 1 }.map { $0.key } 11 } 12 } 36ms 1 class Solution { 2 func uncommonFromSentences(_ A: String, _ B: String) -> [String] { 3 var result: [String] = [] 4 var count: [Substring: Int] = [:] 5 let arrayA = A.split(separator: " ") 6 let arrayB = B.split(separator: " ") 7 for s in arrayA { 8 if let value = count[s] { 9 count[s] = value + 1 10 } else { 11 count[s] = 1 12 } 13 } 14 for s in arrayB { 15 if let value = count[s] { 16 count[s] = value + 1 17 } else { 18 count[s] = 1 19 } 20 } 21 for (key,value) in count { 22 if value == 1 { 23 result.append(String(key)) 24 } 25 } 26 return result 27 } 28 }
|
请发表评论