【题目描述】
给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)
如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
返回所有不常用单词的列表。
您可以按任何顺序返回列表。
【示例1】
输入:A = "this apple is sweet", B = "this apple is sour"
输出:["sweet","sour"]
【示例2】
输入:A = "apple apple", B = "banana"
输出:["banana"]
【提示】
1、0 <= A.length <= 200
2、0 <= B.length <= 200
3、A 和 B 都只包含空格和小写字母。
【思路】
1、返回两个句子中 只出现一次的字符串!
2、时间复杂度O(m+n),m,n分别为A、B句子的长度
3、空间复杂度O(m+n)
Swift代码实现:
func uncommonFromSentences(_ A: String, _ B: String) -> [String] {
var dic = [String:Int]()
var res = [String]()
for str in A.components(separatedBy: " ") {
var v = dic[str] ?? 0
v+=1
dic[str] = v
}
for sub in B.components(separatedBy: " ") {
var v = dic[sub] ?? 0
v+=1
dic[sub] = v
}
for (key,value) in dic {
if value == 1 {
res.append(key)
}
}
return res
}
网友评论