Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Алфавит разделен на гласные и согласные буквы (Да, мы разделили буквы, а не звуки).
- Гласные -- A E I O U Y
- Согласные -- B C D F G H J K L M N P Q R S T V W X Z
- Дан текст с разными словами и/или числами, которые разделены пробелами и знаками пунктуации. Числа не считаются за слова (также как и смесь букв и цифр). Необходимо подсчитать слова, в которых гласные буквы чередуются с согласными (полосатые слова), то есть в таких словах нет двух гласных или двух согласных букв подряд. Слова состоящие из одной буквы - не "полосатые" (не считайте их). Регистр букв не имеет значения.
- """
- import re
- VOWELS = "AEIOUY".lower()
- CONSONANTS = "BCDFGHJKLMNPQRSTVWXZ".lower()
- def check(word):
- result = list(map(lambda x: 1 if x in VOWELS else 0, word))
- for i in range(len(result) - 1):
- if result[i] == result[i + 1]:
- return False
- return True
- def checkio(text):
- return sum([check(word) for word in [x.lower() for x in re.findall(r"[\w]+", text)] if len(word) > 1])
- #These "asserts" using only for self-checking and not necessary for auto-testing
- if __name__ == '__main__':
- assert checkio("My name is ...") == 3, "All words are striped"
- assert checkio("Hello world") == 0, "No one"
- assert checkio("A quantity of striped words.") == 1, "Only of"
- assert checkio("Dog,cat,mouse,bird.Human.") == 3, "Dog, cat and human"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement