diff options
| author | Lubos Kolouch <lubos@kolouch.net> | 2024-09-16 09:41:35 +0200 |
|---|---|---|
| committer | Lubos Kolouch <lubos@kolouch.net> | 2024-09-16 09:41:35 +0200 |
| commit | 65b9d6b25e0a823ca7ab6d15744ff98eb3697471 (patch) | |
| tree | fcbcdebd50e3e146dfecf519701ec04b191053eb /challenge-053/paulo-custodio/python/ch-2.py | |
| parent | bd1fe7ae50ca42bda58c134b9edfdc287fb3f386 (diff) | |
| parent | 68e321dd32a834f54b55d5e8924f04358e41cf1f (diff) | |
| download | perlweeklychallenge-club-65b9d6b25e0a823ca7ab6d15744ff98eb3697471.tar.gz perlweeklychallenge-club-65b9d6b25e0a823ca7ab6d15744ff98eb3697471.tar.bz2 perlweeklychallenge-club-65b9d6b25e0a823ca7ab6d15744ff98eb3697471.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-053/paulo-custodio/python/ch-2.py')
| -rw-r--r-- | challenge-053/paulo-custodio/python/ch-2.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/challenge-053/paulo-custodio/python/ch-2.py b/challenge-053/paulo-custodio/python/ch-2.py new file mode 100644 index 0000000000..2672f2d84a --- /dev/null +++ b/challenge-053/paulo-custodio/python/ch-2.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 + +# Challenge 053 +# +# TASK #2 +# Vowel Strings +# Write a script to accept an integer 1 <= N <= 5 that would print all possible +# strings of size N formed by using only vowels (a, e, i, o, u). +# +# The string should follow the following rules: +# +# 'a' can only be followed by 'e' and 'i'. +# +# 'e' can only be followed by 'i'. +# +# 'i' can only be followed by 'a', 'e', 'o', and 'u'. +# +# 'o' can only be followed by 'a' and 'u'. +# +# 'u' can only be followed by 'o' and 'e'. +# +# For example, if the given integer N = 2 then script should print the following +# strings: +# +# ae +# ai +# ei +# ia +# io +# iu +# ie +# oa +# ou +# uo +# ue + +import sys + +def show_vowels(n, string): + if len(string) == n: + print(string) + elif string == "": + for vowel in ['a', 'e', 'i', 'o', 'u']: + show_vowels(n, string+vowel) + elif string[-1] == 'a': + for vowel in ['e', 'i']: + show_vowels(n, string+vowel) + elif string[-1] == 'e': + for vowel in ['i']: + show_vowels(n, string+vowel) + elif string[-1] == 'i': + for vowel in ['a', 'e', 'o', 'u']: + show_vowels(n, string+vowel) + elif string[-1] == 'o': + for vowel in ['a', 'u']: + show_vowels(n, string+vowel) + elif string[-1] == 'u': + for vowel in ['e', 'o']: + show_vowels(n, string+vowel) + else: + print("expected vowel, got "+string) + +n = int(sys.argv[1]) +show_vowels(n, "") |
