2.5. Алгоритмы на строках

  1. Посчитать количество строчных (маленьких) и прописных (больших) букв в введенной строке. Учитывать только английские буквы.
  2. Вводится строка слов, разделенных пробелами. Найти самое длинное слово и вывести его на экран. Случай, когда самых длинных слов может быть несколько, не обрабатывать.
  3. Вводится строка, состоящая из слов, разделенных пробелами. Требуется посчитать количество слов в ней.
  4. Проверить правильность расстановки скобок в формуле. Расстановку считать правильной, если число открывающих скобок равно числу закрывающих скобок.
  5. Странный диалог.
    Одна сущность по имени "one" беседует со своим другом, сущностью "puton", и нас интересует их разговор. "One" может говорить слова "out" и "output", кроме того, он может называть своего друга по имени. "Puton" может говорить слова "in", "input" и "one". Они прекрасно понимают друг друга и даже пишут диалоги в строки без пробелов между словами.
    Дана строка. Определите, является ли она диалогом. Примеры:

    puton : диалог
    inonputin : нет
    oneputonininputoutoutput : диалог
    
  6. Валидация пина
    Создайте функцию, которая проверяет валидный пинкод или нет.
    Валидный пинкод имеет:

    • От 4 до 6 символов.
    • Только цифры (0-9).
    • Отсутсвует пробел.

    Примеры:

    valid("1234") ➞ True
    valid("45135") ➞ False
    valid("89abc1") ➞ False
    valid("900876") ➞ True
    valid(" 4983") ➞ False
    
  7. Конструктор слов.

    Создайте функцию, которая создаёт слово (строку) из списка символов и списка позиций каждого символа для первого списка. Верните строку, построенную из первого списка с учетом позиций.

    Примеры:

    word_builder(["g", "e", "o"], [1, 0, 2]) ➞ "ego"
    word_builder(["e", "t", "s", "t"], [3, 0, 2, 1]) ➞ "test"
    word_builder(["b", "e", "t", "i", "d", "a"], [1, 4, 5, 0, 3, 2]) ➞ "edabit"
    
  8. Смайлики

    На входе даётся строка, содержащая только три символа :)(.
    Создайте функцию, которая возвращает число, в зависимости от количества грустных или улыбающихся смайликов:
    * Улыбающиеся смайлики :) и (: засчитываются за 1
    * Грустные смайлики :( и ): засчитываются за -1

    Подробный пример:

    happiness_number(":):(") ➞ -1
    # Первые 2 символа - счастливые :)        +1      Total: 1
    # Второй и третий несчастные ):           -1      Total: 0
    # Третий и четвертый несчастные :(        -1      Total: -1
    

    Проверочные примеры:

    happiness_number(":):(") ➞ -1
    happiness_number("(:)") ➞ 2
    happiness_number("::::") ➞ 0