Slide 7
Slide 7 text
Copyright © 2020, Oracle and/or its affiliates. All rights reserved. |
a) lcs solution in SQL
with input(a, b) as (
select 'antidisestablishmentarianism', 'disentanglement' from dual
)
select instr(a, substr(b,b_strt,len)) a_strt,
b_strt, len, substr(b, b_strt, len) lcs
from input i,
lateral( -- calculates LEN
select length(i.b) + 1 - level len
from dual
connect by length(i.b) + 1 - level > 0
) s,
lateral( -- calculates B_STRT
select level b_strt
from dual
connect by level + s.len - 1 <= length(i.b)
)
where instr(a, substr(b,b_strt,len)) > 0 and rownum = 1;
A_STRT B_STRT LEN LCS
------ ------ --- ----
5 1 4 dise