public long[] Solve(string text, long n, string[] patterns) { List <long> results = new List <long>(); SuffixArray s = new SuffixArray(text + '$'); var suffixarray = s.ConstructSuffixArray(); foreach (var pattern in patterns) { var res = s.Search(pattern); foreach (var index in res) { if (!results.Contains(index)) { results.Add(index); } } } if (!results.Any()) { return new long[] { -1 } } ; return(results.ToArray()); } }
private long[] Solve(string text) { var suffixArray = new SuffixArray(text); return(suffixArray.ConstructSuffixArray().Select(x => (long)x).ToArray()); }