On 2007-11-13, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > On Nov 13, 9:28 am, [EMAIL PROTECTED] 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 -- http://mail.python.org/mailman/listinfo/python-list