我們給出兩個單詞陣列 a 和 b。每個單詞都是一串小寫字母。
現在,如果 b 中的每個字母都出現在 a 中,包括重複出現的字母,那麼稱單詞 b 是單詞 a 的子集。 例如,「wrr」 是 「warrior」 的子集,但不是 「world」 的子集。
如果對 b 中的每乙個單詞 b,b 都是 a 的子集,那麼我們稱 a 中的單詞 a 是通用的。
你可以按任意順序以列表形式返回 a 中所有的通用單詞。
示例 1:
輸出:["facebook","google","leetcode"]
示例 2:
示例 3:
輸出:["facebook","google"]
示例 4:
輸出:["google","leetcode"]
示例 5:
輸出:["facebook","leetcode"]
1 <= a.length, b.length <= 10000
1 <= a[i].length, b[i].length <= 10
a[i] 和 b[i] 只由小寫字母組成。
a[i] 中所有的單詞都是獨一無二的,也就是說不存在 i != j 使得 a[i] == a[j]。
思路分
析:\color思路分析:
思路分析
:這道題沒啥轉彎的地方,只需要知道如何判斷乙個單詞是否能夠滿足b中所有單詞構造所需要的字母即可。
首先我們需要知道乙個並集思想,假設b中的word1需要3個'a',2個'b',4個'c'
,word2需要4個'a',1個'b',5個'd'
,則word1、word2共需要4個'a',2個'b',4個'c',5個'd'
。注意字母可以復用!
因此我們需要確定b中構造所有單詞需要的最多字母種類數和對應的個數,接著我們判斷a中的單詞是否滿足要求即可。
class
solution
//更新b需要的最大容量字母及個數
for(
int i =
0; i <26;
++i)}}
vector resstrvec;
for(
const
auto
&word : a)
}return resstrvec;
}//判斷單詞word中是否含有needvec所需要的單詞
Leetcode 反轉字串中的單詞
給定乙個字串,你需要反轉字串中每個單詞的字元順序,同時仍保留空格和單詞的初始順序。示例 1 輸入 let s take leetcode contest 輸出 s tel ekat edocteel tsetnoc 注意 在字串中,每個單詞由單個空格分隔,並且字串中不會有任何額外的空格。思路就是分成...
leetcode151翻轉字串單詞
leetcode151.翻轉字串裡的單詞 題目描述 給定乙個字串,逐個翻轉字串中的每個單詞 示例 輸入 the sky is blue 輸出 blue is sky the 再這裡需要逐一的是輸入的字串可以在前面或者後面包含多餘的空格,但反轉後的單詞間的空格只能減少到乙個。思路 在這裡考慮進行兩次翻...
leetcode 字串中的單詞數
統計字串中的單詞個數,這裡的單詞指的是連續的不是空格的字元。請注意,你可以假定字串裡不包括任何不可列印的字元。示例 輸入 hello,my name is john 輸出 5 使用乙個或多個空格分割字串 如下 string arr str.split s for string ss arr 首先使用...