Shortest common supersequence: Difference between revisions
Content added Content deleted
(Simpler D entry) |
m (Added Sidef) |
||
Line 209: | Line 209: | ||
<pre> |
<pre> |
||
SCS(abcbdab, bdcaba) = abcbdcaba |
SCS(abcbdab, bdcaba) = abcbdcaba |
||
</pre> |
|||
=={{header|Sidef}}== |
|||
{{trans|Perl}} |
|||
Uses the ''lcs'' function defined [http://rosettacode.org/wiki/Longest_common_subsequence#Sidef here]. |
|||
<lang ruby>func scs(u, v) { |
|||
var ls = lcs(u, v).chars |
|||
var pat = Regex('(.*)'+ls.join('(.*)')+'(.*)') |
|||
u.scan!(pat) |
|||
v.scan!(pat) |
|||
var ss = (u.shift + v.shift) |
|||
ls.each { |c| ss += (c + u.shift + v.shift) } |
|||
return ss |
|||
} |
|||
say scs("abcbdab", "bdcaba")</lang> |
|||
{{out}} |
|||
<pre> |
|||
abdcabdab |
|||
</pre> |
</pre> |
||