美文网首页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