Burrows–Wheeler transform: Difference between revisions

m
→‎{{header|Sidef}}: simplification in bwt_encode()
(Add Dart implementation)
m (→‎{{header|Sidef}}: simplification in bwt_encode())
Line 2,896:
func bwt_encode(String s) {
 
var bwt = bwt_sort(s)
var ret = bwt.map {|i| s.slice(i-1, 1) }.join
var prefixidx = sbwt.slice(0,first_index_by LOOKAHEAD_LEN){ .is_zero }
var len = prefix.len
 
var idx = 0;
for i in (bwt) {
 
var lookahead = s.slice(i, len)
 
if (lookahead.len < len) {
lookahead += s.slice(0, len - lookahead.len)
}
 
if (lookahead == prefix) {
var row = s.rotate(i)
if (row == s) {
break
}
}
++idx
}
 
return (ret, idx)
2,747

edits