diff options
Diffstat (limited to 'challenge-254/steven-wilson/python/ch-02.py')
| -rw-r--r-- | challenge-254/steven-wilson/python/ch-02.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-254/steven-wilson/python/ch-02.py b/challenge-254/steven-wilson/python/ch-02.py new file mode 100644 index 0000000000..9a9fc09f62 --- /dev/null +++ b/challenge-254/steven-wilson/python/ch-02.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + + +VOWELS = set('aeiou') + + +def reverse_vowels(string): + ''' Given a string reverse all the vowels (a, e, i, o, u) and return + resulting string. + + >>> reverse_vowels('Raku') + 'Ruka' + >>> reverse_vowels('Perl') + 'Perl' + >>> reverse_vowels('Julia') + 'Jaliu' + >>> reverse_vowels('Uiua') + 'Auiu' + ''' + string = string.lower() + indexes = [] + cs = [] + for index, c in enumerate(string): + if c in VOWELS: + indexes.append(index) + cs.append(c) + + if len(indexes) < 2: + return string.title() + else: + characters = list(string) + for index in indexes: + characters[index] = cs.pop() + return ''.join(characters).title() + + +if __name__ == "__main__": + import doctest + + doctest.testmod() |
