- 此问题在此处已有答案**:
How can I find a subsequence in a &[u8] slice?(4个答案)
7天前关闭。
javascript提供了"abcde".indexOf("de") === 3
。
我想对&[T]
做同样的事情,其中T实现了PartialEq。
fn search_haystack<T: PartialEq>(needle: &[T], haystack: &[T]) -> Option<usize> {
todo!()
}
fn main() {
let haystack = [1,2,3,4,5];
let needle = [3,4];
assert_eq!(search_haystack(&needle, &haystack), Some(2))
}
我可以自己写这个函数,但是看起来像是stdlib提供的,我一直没能找到。我如何使用stdlib(不是每晚)有效地完成这个函数呢?
1条答案
按热度按时间tzcvj98z1#
你可以使用
slice` .windows( `n` )`来得到所有长度为
n的子切片的迭代器,你可以将它与
iterator.position()
结合起来,找到第一个等于needle
的子切片: