LCS Algorithm

Run Settings
LanguageRuby
Language Version
Run Command
def lcs(x, y) def get(vals, i, j) i < 0 || j < 0 ? '' : vals[i][j] end vals = x.size.times.map do [''] * y.size end x.size.times do |i| y.size.times do |j| if x[i] == y[j] vals[i][j] = get(vals, i - 1, j - 1) + x[i] else vals[i][j] = [get(vals, i - 1, j), get(vals, i, j - 1)].max_by(&:size) end end end vals[x.size - 1][y.size - 1] end def genRandomStr (0..100).map do (65 + rand(26)).chr end.join end str1 = genRandomStr str2 = genRandomStr puts str1,str2 puts lcs(str1, str2)
Editor Settings
Theme
Key bindings
Full width
Lines