Longest common subsequence: Difference between revisions
m
Ordering
(Add BQN) |
m (Ordering) |
||
Line 316:
tsitest
</pre>
=={{header|BQN}}==▼
It's easier and faster to get only the length of the longest common subsequence, using <code>LcsLen ← ¯1 ⊑ 0¨∘⊢ {𝕩⌈⌈`𝕨+»𝕩}˝ =⌜⟜⌽</code>. This function can be expanded by changing <code>⌈</code> to <code>⊣⍟(>○≠)</code> (choosing from two arguments one that has the greatest length), and replacing the empty length 0 with the empty string <code>""</code> in the right places.▼
<lang bqn>LCS ← ¯1 ⊑ "" <⊸∾ ""¨∘⊢ ⊣⍟(>○≠){𝕩𝔽¨𝔽`𝕨∾¨""<⊸»𝕩}˝ (=⌜⥊¨⊣)⟜⌽</lang>▼
Output:▼
<lang bqn> "1234" LCS "1224533324"▼
"1234"▼
"thisisatest" LCS "testing123testing"▼
"tsitest"</lang>▼
=={{header|Bracmat}}==
Line 333 ⟶ 342:
{{out}}
<pre>max 7 lcs t s i t e s t</pre>
▲=={{header|BQN}}==
▲It's easier and faster to get only the length of the longest common subsequence, using <code>LcsLen ← ¯1 ⊑ 0¨∘⊢ {𝕩⌈⌈`𝕨+»𝕩}˝ =⌜⟜⌽</code>. This function can be expanded by changing <code>⌈</code> to <code>⊣⍟(>○≠)</code> (choosing from two arguments one that has the greatest length), and replacing the empty length 0 with the empty string <code>""</code> in the right places.
▲<lang bqn>LCS ← ¯1 ⊑ "" <⊸∾ ""¨∘⊢ ⊣⍟(>○≠){𝕩𝔽¨𝔽`𝕨∾¨""<⊸»𝕩}˝ (=⌜⥊¨⊣)⟜⌽</lang>
▲Output:
▲<lang bqn> "1234" LCS "1224533324"
▲"1234"
▲ "thisisatest" LCS "testing123testing"
▲"tsitest"</lang>
=={{header|C}}==
|