On Thu, 06 Nov 2014 03:36:40 +0000, Denis McMahon wrote: > On Wed, 05 Nov 2014 18:49:01 +0000, MRAB wrote: > >> It doesn't work for the final example or "barbaz". > > Oh, and we really need a private "python homework answers" list where we > can discuss the most pythonic solution we can think of for all these > homework / coursework questions without showing the solutions to the > students.
> I'm quite proud of a 2 line solution to the third algorithm that I > implemented, although it might be considered as somewhat obfuscated code > by some. ;) Even prouder of the 1 liner! In fact I'm going to post it, because I think any student who can walk his instructor through how my one-liner works deserves the marks. Of course, any student who presents this as a solution and is unable to walk their instructor through it should be failed for stupidity and plagiarism! t = ["pythonpythonpyth", "DOLORIUMD", "HELLOLHELLO", "thewordword", "barbaz", "dibdibdobdibdibdob"] def baseword(s): """find shortest sequence which repeats to generate s""" return s[0:["".join([s[0:x]for k in range(int(len(s)/x)+1)])[0:len (s)]for x in range(1,len(s)+1)].index(s)+1] for w in t: print(baseword(w)) p.s. I really want to be in the room when the instructor asks this student to come up in front of the class and explain how his solution works! -- Denis McMahon, denismfmcma...@gmail.com -- https://mail.python.org/mailman/listinfo/python-list