What about 'thisisatestthisisatest' lcs 'testing123testingtesting123testing' ?
R.E Boss > -----Oorspronkelijk bericht----- > Van: [email protected] > [mailto:[email protected]] Namens Raul Miller > Verzonden: vrijdag 1 februari 2013 21:40 > Aan: [email protected] > Onderwerp: Re: [Jprogramming] inverse oblique > > And... here, I solved the wrong problem. > > I should have used something like: > > common=: 2 2 <@({.@;@{. ([ ~.@, ;@:}:@] , (,&.> ;@{:)) }.&.>)@,;.3^:_ > ((;~@#)&.> i.@$)@(=/) > > lcs=: [ {~ 0 {"1 ,&$ #: 0 >@{.@(#~ (= >./)@:(#@>))@({:: ,) common > > 'thisisatest' lcs 'testing123testing' > tsitest > > -- > Raul > > On Thu, Jan 31, 2013 at 4:41 PM, Raul Miller <[email protected]> wrote: > > Thanks, this is great. > > > > Based on this, added another J implementation of the longest common > > subsequence task from rosettacode: > > http://rosettacode.org/wiki/Longest_Common_Subsequence#J > > > > It's this code: > > > > accumulate=: [ >. [ + * > > rateSequence=: <@(accumulate/\.) > > rateSeqs=: $ $ rateSequence/. /:&; </.@i.@$ > > commonLengths=: rateSeqs&.|.@(=/) > > maxLen=: >./@, > > longest=: = maxLen > > longLoc=: (-@maxLen ; 1 + {.@I.@:(+./)@longest)@commonLengths > > lcs=: [: > [: {.&.>/ longLoc , <@] > > > > 'thisisatest' lcs 'testing123testing' > > test > > > > I can easily imagine that this code could be further simplified. If > > anyone sees any good simplifications, feel free to update rosettacode > > and/or post the details here. > > > > Thanks, > > > > -- > > Raul > > > > > > On Thu, Jan 31, 2013 at 1:48 PM, Roger Hui <[email protected]> > > wrote: > >> t -: (2{.s) $ x /:&; </.i.s > >> 1 > >> > >> > >> > >> On Thu, Jan 31, 2013 at 10:47 AM, Roger Hui > >> <[email protected]>wrote: > >> > >>> t=: 5 7 2 ?@$ 1e6 > >>> s=: $t > >>> x=: </.t > >>> > >>> t -: (2{.s) $ (;x)/:;</.i.s > >>> 1 > >>> > >>> > >>> > >>> On Thu, Jan 31, 2013 at 10:28 AM, Raul Miller > >>> <[email protected]>wrote: > >>> > >>>> Let's start with an arbitrary array: > >>>> > >>>> A=: i. 2 3 > >>>> > >>>> We can box oblique lines from this array: > >>>> > >>>> </. A > >>>> +-+---+---+-+ > >>>> |0|1 3|2 4|5| > >>>> +-+---+---+-+ > >>>> > >>>> However, the interpreter does not currently provide us with an inverse > >>>> for this operation: > >>>> > >>>> </.inv </. A > >>>> |domain error > >>>> > >>>> One problem is that you cannot uniquely determine the first two > >>>> elements of the shape of the original array by inspecting </.'s > >>>> result: > >>>> > >>>> (</. 5 7$0) -: </.7 5$0 > >>>> 1 > >>>> > >>>> If its shape is provided, how might we reconstruct the original array? > >>>> > >>>> [For the sake of simple code, it's ok to focus on numeric, rank 2 > >>>> arrays.] > >>>> > >>>> -- > >>>> Raul > >>>> ---------------------------------------------------------------------- > >>>> For information about J forums see http://www.jsoftware.com/forums.htm > >>>> > >>> > >>> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
