884. 两句话中的不常见单词
给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)
如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
返回所有不常用单词的列表。
您可以按任何顺序返回列表。
示例 1:
输入:A = "this apple is sweet", B = "this apple is sour"输出:["sweet","sour"]示例 2:
输入:A = "apple apple", B = "banana"输出:["banana"]
提示:
0 <= A.length <= 2000 <= B.length <= 200A 和 B 都只包含空格和小写字母。
第一版,很容易,自己写的
执行用时 :4 ms, 在所有 cpp 提交中击败了91.83%的用户
内存消耗 :8.7 MB, 在所有 cpp 提交中击败了100.00%的用户
vector<string>uncommonFromSentences(stringA, stringB) {
unordered_map<string,int>un_mp;
stringtemp;
for (unsignedi=0;i<A.size();++i)
{
temp="";
while (A[i] !=' '&&i<A.size()) {
temp+=A[i++];
}
if (temp.size() >0) ++un_mp[temp];
}
for (unsignedi=0; i<B.size(); ++i)
{
temp="";
while (B[i] !=' '&&i<B.size()) {
temp+=B[i++];
}
if (temp.size() >0) ++un_mp[temp];
}
vector<string>res;
for (auto&a : un_mp) {
if (a.second==1) res.push_back(a.first);
//cout << a.first << " " << a.second << endl;
}
returnres;
}
1207. 独一无二的出现次数
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。
示例 1:
输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:
输入:arr = [1,2]输出:false示例 3:
输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]输出:true
第一版 unordered_map,unordered_set
执行用时 :4 ms, 在所有 cpp 提交中击败了88.78%的用户
内存消耗 :8.9 MB, 在所有 cpp 提交中击败了100.00%的用户
booluniqueOccurrences(vector<int>&arr) {
unordered_map<int, int>un_mp(arr.size());
unordered_set<int>un_st;
for (auto&a : arr) {
un_mp[a]++;
}
for (auto&a : un_mp) {
un_st.insert(a.second);
}
returnun_st.size() ==un_mp.size();
}