Burrows–Wheeler transform: Difference between revisions

Content added Content deleted
No edit summary
(added BQN solution)
Line 14: Line 14:
Source: [[wp:Burrows–Wheeler_transform|Burrows–Wheeler transform]]
Source: [[wp:Burrows–Wheeler_transform|Burrows–Wheeler transform]]
<br><br>
<br><br>

=={{header|BQN}}==
<lang BQN>stx←@+2
BWT ← { # Burrows-Wheeler Transform and its inverse as an invertible function
𝕊: "Input contained STX"!⊑stx¬∘∊𝕩 ⋄ (stx⊸∾⊏˜·⍋↓) 𝕩;
𝕊⁼: 1↓(⊑˜⍟(↕≠∘⊣)⟜⊑ ⍋)⊸⊏ 𝕩
}
</lang>
Example use:
<lang> BWT "banana"
"annb␂aa"
BWT⁼ BWT "banana"
"banana"

BWT "appellee"
"e␂elplepa"
BWT⁼ BWT "appellee"
"appellee"

BWT "dogwood"
"do␂oodwg"
BWT⁼ BWT "dogwood"
"dogwood"

BWT "TO BE OR NOT TO BE OR WANT TO BE OR NOT?"
"?OOORREEETTRTW BBB ATTT NNOOONOO␂ "
BWT⁼ BWT "TO BE OR NOT TO BE OR WANT TO BE OR NOT?"
"TO BE OR NOT TO BE OR WANT TO BE OR NOT?"

BWT "SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES"
"STEXYDST.E.IXXIIXXSSMPPS.B..EE.␂.USFXDIIOIIIT"
BWT⁼ BWT "SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES"
"SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES"

BWT "␂abc"
Error: Input contained STX
</lang>


=={{header|C}}==
=={{header|C}}==