美文网首页LeetCode高薪算法+计算机职称考试Swift in LeetCode
LeetCode 884. 两句话中的不常见单词 Uncommo

LeetCode 884. 两句话中的不常见单词 Uncommo

作者: 1江春水 | 来源:发表于2019-08-06 10:43 被阅读10次

【题目描述】
给定两个句子 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
}

相关文章

网友评论

    本文标题:LeetCode 884. 两句话中的不常见单词 Uncommo

    本文链接:https://www.haomeiwen.com/subject/soqidctx.html