Условие: «Получить от пользователя две произвольные строки. Создать из них одну строку максимально возможной длины. В состав её могут входить только строчные буквы, причем ни одна из них не может повторяться»
Решение № 1.
Сначала по традиции начнем с самого трудоёмкого способа. Получим от пользователя строки и конкатенируем их…
Конкатенация – это сложение строк. Если
str1 = ’asd’, str2 =’zxc’
то:
str1 + str2 = ‘asdzxc’
Кроме это строки можно умножать. Например в данном примере:
str1 * 3 = ’asdasdasd’
После этого создадим строку - словарь, содержащую все английские строчные буквы в алфавитном порядке. Также создаем итоговую строку – изначально она пустая. Далее - в цикле берем каждый символ из нашей строки-словаря и проверяем – содержится ли такой символ в склеенной пользовательской строке. Если содержится – добавляем текущий символ к итоговой строке.
Решение № 2
Второй способ использует свойства множеств. Множество – это сущность, очень похожая на списки, но она может содержать только не повторяющиеся элементы. Множества невероятно удобны для отсеивания повторяющихся элементов. Создаются множества так:
x = set (str)
В нашем примере мы создаем множество и одновременно конкатенируем пользовательские строки :
my_dist = set(string1+string2)
Таким образом, пользовательские строки сливаются и из них исключаются повторяющиеся элементы. Затем мы сортируем полученное множество с помощью функции sorted().
О функции sorted(), конкатенации строк, а также о методе списков .sort() подробно описано в решении задачи № 2.
Далее, чтобы преобразовать полученное в строку – используем метод .join(). Его синтаксис:
х .join(list)
Здесь он из списка list соберет строку с разделителем х между элементами. В нашем случае х = ‘’, т.е. разделителя нет.
Впрочем, все это можно было сделать и не растягивая на 4 строки:
На этом остановимся. Если у Вас, уважаемый читатель, есть более элегантные способы решения этой задачи – прошу поделиться ими !
Конструктивная критика приветствуется.
Эта статья была полезной? Поставьте лайк и поделитесь с друзьями в социальных сетях!
Оставьте отзывы и замечания!
Задача для закрепления: «Получить от пользователя произвольную строку. Вывести на экран строчные английские символы, которых не было в пользовательской строке»
Предыдущая задача:
Решение практической задачи № 2
Более полное описание подходов, методов и функций, применяемых в этом решении:
База знаний
Функции: set()
Методы: .join()
Типы данных: str (строки)