lcp_array

Function lcp_array 

Source
pub fn lcp_array(s: &[char], sa: &[usize]) -> Vec<usize>
Expand description

LCP 配列を O(|s|) で求めます。

返り値は長さ s.len() - 1 のベクタ lcp であり lcp[i] := s[sa[i]..]s[sa[i+1]..] との最長共通接頭辞の長さ、です。

§Examples

use suffix_array::{suffix_array, lcp_array};
let s: Vec<char> = "mississippi".chars().collect();
let sa = suffix_array(&s);
let lcp = lcp_array(&s, &sa);
assert_eq!(lcp, vec![1, 1, 4, 0, 0, 1, 0, 2, 1, 3]);