def _convert_to_altered_equivalent(ch):
return '*'
def _is_vowel(ch):
vowels = {'A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u'}
return ch in vowels
def gibberizer(input_str):
altered_str = list(input_str)
count_vowels = 0
for i in range(len(altered_str)):
if _is_vowel(altered_str[i]):
count_vowels += 1
if count_vowels < 3:
return ''.join(altered_str)
count_vowels -= 3 # because first three vowels can never be altered
for i in range(len(altered_str)-1, -1, -1):
if count_vowels == 0:
break
elif _is_vowel(altered_str[i]):
altered_str[i] = _convert_to_altered_equivalent(altered_str[i])
count_vowels -= 1
return ''.join(altered_str)
print(gibberizer("gghhjjkkkllaa"))
print(gibberizer("alphabetical"))
print(gibberizer("thisisaverylongexample"))
print(gibberizer("gghhjjkkkllaaae"))
ZGVmIF9jb252ZXJ0X3RvX2FsdGVyZWRfZXF1aXZhbGVudChjaCk6CiAgcmV0dXJuICcqJwoKZGVmIF9pc192b3dlbChjaCk6CiAgdm93ZWxzID0geydBJywgJ2EnLCAnRScsICdlJywgJ0knLCAnaScsICdPJywgJ28nLCAnVScsICd1J30KICByZXR1cm4gY2ggaW4gdm93ZWxzCgpkZWYgZ2liYmVyaXplcihpbnB1dF9zdHIpOgogIGFsdGVyZWRfc3RyID0gbGlzdChpbnB1dF9zdHIpCiAgICAKICBjb3VudF92b3dlbHMgPSAwCiAgCiAgZm9yIGkgaW4gcmFuZ2UobGVuKGFsdGVyZWRfc3RyKSk6CiAgICBpZiBfaXNfdm93ZWwoYWx0ZXJlZF9zdHJbaV0pOgogICAgICBjb3VudF92b3dlbHMgKz0gMQogIAogIGlmIGNvdW50X3Zvd2VscyA8IDM6CiAgICByZXR1cm4gJycuam9pbihhbHRlcmVkX3N0cikKICAKICBjb3VudF92b3dlbHMgLT0gMyAjIGJlY2F1c2UgZmlyc3QgdGhyZWUgdm93ZWxzIGNhbiBuZXZlciBiZSBhbHRlcmVkCiAgZm9yIGkgaW4gcmFuZ2UobGVuKGFsdGVyZWRfc3RyKS0xLCAtMSwgLTEpOgogICAgaWYgY291bnRfdm93ZWxzID09IDA6CiAgICAgIGJyZWFrCiAgICBlbGlmIF9pc192b3dlbChhbHRlcmVkX3N0cltpXSk6CiAgICAgIGFsdGVyZWRfc3RyW2ldID0gX2NvbnZlcnRfdG9fYWx0ZXJlZF9lcXVpdmFsZW50KGFsdGVyZWRfc3RyW2ldKQogICAgICBjb3VudF92b3dlbHMgLT0gMQogIAogIHJldHVybiAnJy5qb2luKGFsdGVyZWRfc3RyKQpwcmludChnaWJiZXJpemVyKCJnZ2hoampra2tsbGFhIikpCnByaW50KGdpYmJlcml6ZXIoImFscGhhYmV0aWNhbCIpKQpwcmludChnaWJiZXJpemVyKCJ0aGlzaXNhdmVyeWxvbmdleGFtcGxlIikpCnByaW50KGdpYmJlcml6ZXIoImdnaGhqamtra2xsYWFhZSIpKQo=