Примеры решения задач со строками
Пример 1. Количество строчных и прописных букв в строке.
Посчитать количество строчных (маленьких) и прописных (больших) букв во введенной строке. Учитывать только английские буквы.
Алгоритм решения:
1. Ввести две переменные для подсчета строчных и прописных букв. Присвоить им
0.
2. Перебирать символы строки от первого до последнего (номер последнего определяется длиной строки),
3. Если очередной символ - это буква, которая не меньше "a" и не больше "z", то увеличить на 1 переменную-счетчик строчных букв, иначе аналогично проверить принадлежность символа диапазону от "A" до "Z". Если символ ему принадлежит, то увеличить счетчик прописных букв.
Как видно из алгоритма, небуквенные символы вообще не учитываются. Тот факт, что буквы можно сравнивать связан с тем, что в таблице кодов символов они идут друг за другом по порядку. Например, буква "a" имеет код на единицу меньше, чем "b", т.е. стоит перед "b".
Код скрипта на языке Python:
s = input() let_s = let_b = 0 for i in s: if 'a' <= i <= 'z': let_s += 1 else: if 'A' <= i <= 'Z': let_b += 1 print(let_s) print(let_b) |
Результат выполнения:
Good Time
6
2
Пример 2. Удаление из строки повторяющихся символов.
Вводится строка. Требуется удалить из нее повторяющиеся символы и все пробелы. Например, если было введено "abc cde def", то должно быть выведено "abcdef".
Алгоритм решения:
Проще всего задачу решить, если формировать результирующую строку в другой переменной. Извлекать каждый символ введенной строки. Если он не встречается в новой строке и не является пробелом, то добавлять его в конец новой строки.
Код скрипта на языке Python:
s1 = input() s2 = ''
for i in range(len(s)): if s2.find(s1[i]) == -1 and s1[i] != ' ': s1 += s[i] print(s2)
Результат выполнения:
a a b d c a c k l c d f abdcklf
Пример 3. Самое короткое слово в строке.
В заданной строке найти самое короткое слово. Слова могут быть разделены пробелами, несколькими пробелами, знаками препинания.
Алгоритм решения:
1. Длина очередного слова будет храниться в переменной w. Вначале присвоим этой переменно 0, т. к. в строке слов может вообще не быть.
2. Длина самого короткого слова будет записана в переменной min. Вначале этой переменной присваивается максимально возможная длина слова. Самое длинное слово может быть, если вся строка состоит только из одного слова. Поэтому сначала min равна длине строки.
3. Перебираем строку посимвольно в цикле for.
4. Если очередной символ является буквой, то увеличиваем значение w.
5. Иначе проверяем не меньше ли длина только что "измеренного" слова, чем значение min. Если это так, то меняем значение min на значение w.
6. Также в ветке else (иначе) обнуляем w, т.к. очередное слово закончилось и необходимо будет "измерять" новое.
Код скрипта на языке Python:
s = input() w = 0 min = len(s) for i in s: if 'a'<= i <='z' or 'A'<= i <='Z' \ or 'а'<= i <='я' or 'А'<= i <='Я': w += 1 else: if w < min and w != 0: min = w w = 0 print(min) |
Результат выполнения:
one, two, three, four
3
Пример 4. Сумма и произведение цифр числа.
Вводится натуральное число (> 0). Необходимо найти сумму и произведение цифр, из которых состоит это число. При этом если в числе встречается цифра 0, то ее не надо учитывать при нахождении произведения.
Алгоритм решения:
В языке программирования Python решить задачу можно оставив число в строковом представлении и далее в цикле for перебрать элементы последовательности.
Код скрипта на языке Python (1 способ ):
n = input() mult = 1 summa = 0 for i in n: summa += int(i) if int(i) != 0: mult *= int(i) print("Сумма цифр:", summa) print("Произведение значащих цифр:", mult) |
Результат выполнения:
1234
Сумма цифр: 10
Произведение значащих цифр: 24
Примечание.
Выражение summa += int(i) - это то же самое, что summa = summa + int(i). Та же сокращенная форма используется и для умножения.
Через строковое представление легко решить и более сложную задачу. Например, надо посчитать сумму и произведение цифр дробного числа или всех цифр, встречающихся в строке. В таком случае решение может быть таким:
Код скрипта на языке Python (2 способ ):
n = input() mult = 1 summa = 0 for i in n: if '1' <= i <= '9' summa += int(i) if int(i) != 0: mult *= int(i) print("Сумма цифр:", summa) print("Произведение значащих цифр:", mult) |
Результат выполнения:
one 1, two 2, three 3, four 4
Сумма цифр: 10
Произведение значащих цифр: 24
Пример 5. Замена подстроки.
Найти в строке указанную подстроку и заменить ее на новую. Строку, ее подстроку для замены и новую подстроку вводит пользователь.
Алгоритм решения:
1. Найти начало (индекс первой буквы) подстроки в строке.
2. Измерить длину подстроки.
3. Удалить подстроку из строки, начиная с позиции ее первой буквы и на ее длину. Вставить новую подстроку в позицию, где раньше была первая буква старой подстроки.
Однако данный алгоритм не является универсальным для всех языков программирования. В каждом языке есть свои методы для работы со строками, хотя большинство из них схожи.
Особенности решения на языке программирования Python:
В данном случае новая строка формируется путем взятия срезов из строки и вставки между ними новой подстроки.
1. Старая подстрока исключается, т.к. берется срез до ее первого символа и срез после ее последнего символа.
2. Последний символ подстроки определяется сложением индекса ее первого символа с ее длинной.
Код скрипта на языке Python:
print('Строка: ') s = input() print('Ее заменяемая подстрока: ') s1 = input() print('Новая подстрока: ') s2 = input() i = s.find(s1) l = len(s1) s = s[0:i] + s2 + s[i+l:] print(s) |
Результат выполнения:
Строка:
11 22 33
Ее заменяемая подстрока:
22
Новая подстрока:
55
11 55 33
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.