Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 如何检查a&str是否只包含给定的字符片?_Rust - Fatal编程技术网

Rust 如何检查a&str是否只包含给定的字符片?

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

我正试图完成一项任务,计算一个给定的&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.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()
}