Re: Convert some Python code to C++
[EMAIL PROTECTED] a écrit : > 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? > > 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! > just have a look at this tutorial: and look for Lists and Sets http://docs.python.org/tut/tut.html and look in the reference index for set() and list() in http://docs.python.org/lib/genindex.html or just pick the algo in another language in the url you give or tell us precisely what part of the python algo you do not understant! -- http://mail.python.org/mailman/listinfo/python-list
Re: Convert some Python code to C++
On Nov 13, 12:51 pm, Neil Cerutti <[EMAIL PROTECTED]> wrote: > 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 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 -- http://mail.python.org/mailman/listinfo/python-list
Re: Convert some Python code to C++
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
Re: Convert some Python code to C++
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. Mike -- http://mail.python.org/mailman/listinfo/python-list
Convert some Python code to C++
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_common_subsequence 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! -- http://mail.python.org/mailman/listinfo/python-list