Convert some Python code to C++

kyosohma at gmail.com kyosohma at gmail.com
Tue Nov 13 20:14:11 CET 2007


On Nov 13, 12:51 pm, Neil Cerutti <horp... at yahoo.com> wrote:
> On 2007-11-13, kyoso... at gmail.com <kyoso... at gmail.com> wrote:
>
>
>
> > On Nov 13, 9:28 am, meyousikm... at yahoo.com wrote:
> >> I am working on an implementation of the Longest Common
> >> Subsequence problem (as I understand it, this problem can be
> >> used in spell checking type activities) and have used this
> >> site to understand the problem and its solution:
>
> >>http://en.wikibooks.org/wiki/Algorithm_implementation/Strings/Longest...
>
> >> For those that understand algorithms and can talk Python, I
> >> want to convert the Python code in the section "Reading out
> >> all LCSs" into C++ code but I don't understand some of the
> >> syntax.  Can anyone give me a hand?
>
> >> Here is the code from that section, but is probably of little
> >> use without understanding the entire problem setup given at
> >> the site above:
>
> >> def backTrackAll(C, X, Y, i, j):
> >>     if i == 0 or j == 0:
> >>         return set([""])
> >>     elif X[i-1] == Y[j-1]:
> >>         return set([Z + X[i-1] for Z in backTrackAll(C, X, Y, i-1,
> >> j-1)])
> >>     else:
> >>         R = set()
> >>         if C[i][j-1] >= C[i-1][j]:
> >>             R.update(backTrackAll(C, X, Y, i, j-1))
> >>         if C[i-1][j] >= C[i][j-1]:
> >>             R.update(backTrackAll(C, X, Y, i-1, j))
> >>         return R
>
> >> Thanks!
>
> > You might try Shed Skin:
>
> >http://sourceforge.net/projects/shedskin/
>
> > It's been a while since I did C++. I would recommend going
> > through a basic C++ tutorial. I'm pretty sure the equivalence
> > operators are almost the same. You'll likely need to declare
> > the types for the arguments passed into the function as well.
>
> > I think lists are called arrays in C++. I don't know what the
> > "set" equivalent is though.
>
> It is called set, oddly enough. ;)
>
> There's an overload of the set::insert function that takes a
> couple of iterators that will serve for Python's update method.
>
> --
> Neil Cerutti

I suspected as much, but I don't think they ever got that far into C++
in the classes I took. I'll have to file that little nugget for future
reference. Hopefully the OP is getting something out of this as well.

Mike




More information about the Python-list mailing list