Jump to content

Burrows–Wheeler transform: Difference between revisions

added BQN solution
No edit summary
(added BQN solution)
Line 14:
Source: [[wp:Burrows–Wheeler_transform|Burrows–Wheeler transform]]
<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}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.