Open carloscn opened 1 year ago
s1和s2字符串以空格split放入同一个str vector中,然后去的进行去重。rust烦人之处在于这个借用规则,一旦被迭代的样本向量进入到迭代,在迭代之中就不能对这个样本进行修改。所以要尽量使用闭包对样本进行修改。
fn uncommon_from_sentences(s1: String, s2: String) -> Vec<String>
{
let mut ret_vec:Vec<String> = vec![];
let mut s1_vec:Vec<String> = s1.split(" ")
.map(|x| x.to_string())
.collect();
let mut s1_vec_clone = s1_vec.clone();
let mut s2_vec:Vec<String> = s2.split(" ")
.map(|x| x.to_string())
.collect();
s1_vec.retain(|x| !s2_vec.contains(x));
s2_vec.retain(|x| !s1_vec_clone.contains(x));
ret_vec.append(&mut s1_vec);
ret_vec.append(&mut s2_vec);
return ret_vec;
}
问题描述
句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。
如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。
给你两个 句子 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 由小写英文字母和空格组成 s1 和 s2 都不含前导或尾随空格 s1 和 s2 中的所有单词间均由单个空格分隔
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/uncommon-words-from-two-sentences