#!/usr/bin/env python def reverse_words(string): reverse(string, 0, len(string)-1) prev_space_index = 0 for i in xrange(0, len(string)): if string[i] == " ": reverse(string, prev_space_index, i-1) prev_space_index = i + 1 # the last word hasn't been reversed if prev_space_index < len(string): reverse(string, prev_space_index, len(string)-1) def reverse(string, beg, end): i = beg j = end # print string[beg:end] while i < j: string[i], string[j] = string[j], string[i] i += 1 j -= 1 if __name__ == "__main__": l = list("my first name is foo and my last name is bar") reverse_words(l) assert "bar is name last my and foo is name first my" == "".join(l)
Wednesday, May 23, 2012
How to Reverse Order of Words in Python
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment