Rust 如何检查a&str是否只包含给定的字符片?
我正试图完成一项任务,计算一个给定的&str包含多少移位词而没有任何重复。移位字是仅由H、I、N、O、S、X、Z、M和W组成的字Rust 如何检查a&str是否只包含给定的字符片?,rust,Rust,我正试图完成一项任务,计算一个给定的&str包含多少移位词而没有任何重复。移位字是仅由H、I、N、O、S、X、Z、M和W组成的字 use itertools::Itertools; fn shifter(s: &str) -> usize { s.split(' ') .unique() .map(|x| x.chars(). } 您可以使用and测试每个元素是否与给定谓词匹配 SOS.chars.all | c | HINOSXZMW.contai
use itertools::Itertools;
fn shifter(s: &str) -> usize {
s.split(' ')
.unique()
.map(|x| x.chars().
}
您可以使用and测试每个元素是否与给定谓词匹配 SOS.chars.all | c | HINOSXZMW.containsc;//符合事实的 请注意,还有一个问题,因此以下内容也适用: 让字母=['H','I','N','O','S','X','Z','M','W']; SOS.chars.all | c |字母。包含&c;//符合事实的
从以下几个方面综合起来: 因为对于空集合,all返回true,所以存在is_empty 查看它在.上的工作情况。交换筛选器和unique似乎是一个明显的改进
shifter("SOS IN THE HOME") == 2 // shifter words are "SOS" and "IN"
shifter("WHO IS SHIFTER AND WHO IS NO") == 3 // shifter words are "WHO", "IS", "NO"
shifter("TASK") == 0 // no shifter words
shifter("") == 0 // no shifter words in empty string
fn shifter(s: &str) -> usize {
s.split(' ')
.unique()
.filter(|x| !x.is_empty() && x.chars().all(|c| "HINOSXZMW".contains(c)))
.count()
}