小编Анд*_*рей的帖子

计算重复字符的迭代器适配器

我有一个像“aaaabbbccccc”这样的字符串。我想在字符串的chars迭代器上创建一个适配器,以生成相同字符的计数。输出(count)需要是连续相同字符的数量。例如:

let s = "aaaabbbccccc"
for count in s.chars().MAGIC() {
    println!("{}", count)
}
// prints: 4, 3, 5
Run Code Online (Sandbox Code Playgroud)

更新:这几乎有效:过去不考虑字母:

let s = "aaaabbbcccccdd".to_string();
let mut tt = (s.chars().nth(0).unwrap(), 0);
for a in s.chars().filter_map(|x| {
    if x != tt.0 {
        tt.0 = x;
        let tt_temp = tt.1;
        tt.1 = 1;
        Some(tt_temp)
    } else {
        tt.1 += 1;
        None
    }
}) {
    println!("{:?}", a);
}
Run Code Online (Sandbox Code Playgroud)

string monads count char rust

1
推荐指数
1
解决办法
2489
查看次数

标签 统计

char ×1

count ×1

monads ×1

rust ×1

string ×1