LeetCode简单题之两句话中的不常见单词
題目
句子 是一串由空格分隔的單詞。每個(gè) 單詞 僅由小寫(xiě)字母組成。
如果某個(gè)單詞在其中一個(gè)句子中恰好出現(xiàn)一次,在另一個(gè)句子中卻 沒(méi)有出現(xiàn) ,那么這個(gè)單詞就是 不常見(jiàn)的 。
給你兩個(gè) 句子 s1 和 s2 ,返回所有 不常用單詞 的列表。返回列表中單詞可以按 任意順序 組織。
示例 1:
輸入:s1 = “this apple is sweet”, s2 = “this apple is sour”
輸出:[“sweet”,“sour”]
示例 2:
輸入:s1 = “apple apple”, s2 = “banana”
輸出:[“banana”]
提示:
1 <= s1.length, s2.length <= 200
s1 和 s2 由小寫(xiě)英文字母和空格組成
s1 和 s2 都不含前導(dǎo)或尾隨空格
s1 和 s2 中的所有單詞間均由單個(gè)空格分隔
來(lái)源:力扣(LeetCode)
解題思路
??這道題一般的流程就是分別找出兩個(gè)字符串中各自詞頻為1的單詞,然后分別在對(duì)方的字符串中查找自身的詞頻為1的單詞,看看是否能找到。得益于python的字典就是一個(gè)很好的哈希表,查找的速度便只是O(1)的時(shí)間復(fù)雜度,而整個(gè)算法的時(shí)間復(fù)雜度就是建立字典的時(shí)間復(fù)雜度O(len(s1)+len(s2))
class Solution:def uncommonFromSentences(self, s1: str, s2: str) -> List[str]:s1=s1.split(' ') #以空格分割得到單詞s2=s2.split(' ')d1={} #建立各自的詞頻表d2={}temp=[]for i in s1:d1[i]=d1.get(i,0)+1for i in s2:d2[i]=d2.get(i,0)+1for i,j in d1.items():if j==1 and i not in d2:temp.append(i)for i,j in d2.items():if j==1 and i not in d1:temp.append(i)return temp
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之两句话中的不常见单词的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode简单题之二叉搜索树中的众
- 下一篇: LeetCode简单题之构造矩形