Burrows–Wheeler transform: Difference between revisions
Content added Content deleted
(Add Dart implementation) |
m (→{{header|Sidef}}: simplification in bwt_encode()) |
||
Line 2,896: | Line 2,896: | ||
func bwt_encode(String s) { |
func bwt_encode(String s) { |
||
var bwt |
var bwt = bwt_sort(s) |
||
var ret |
var ret = bwt.map {|i| s.slice(i-1, 1) }.join |
||
var |
var idx = bwt.first_index_by { .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) |
return (ret, idx) |