Повторяющийся символы в строке в языке Python
Что вы уже пробовали сделать и в чём у вас проблема? Задачка довольно простая, решается «в лоб» перебором символов строки в цикле, плюс один символ в промежуточной переменной хранится. Ну либо чуть хитрее через zip со сдвигом строки.
20 июн 2022 в 9:39
str_1 = input(«Введите строку:») count = 0 symb = » for el in str_1: if str_1.count(el) > count: count = str_1.count(el) symb = el print(el.replace(el, »))
20 июн 2022 в 9:47
Сейчас у меня что то такое)
20 июн 2022 в 9:47
Добавил ваш код в вопрос. Но не уверен про отступы. Не пишите код в комментариях, он там не форматируется нормально. В общем, это неправильный путь, просто попробуйте запоминать предыдущий символ и сравнивать с ним текущий. Потом либо печатайте символ либо не печатайте. Либо копите символы в строке или списке и выводите потом. Заменой строки лучше не пользоваться кроме случаев, когда вам надо какой-то символ совсем из строки удалить, у вас не тот случай.
Напишите программу которая удаляет из строки все повторяющиеся символы
Сообщение от Mad_Cat
Function DeleteRepeatChar(s:string):string; var buf:string; begin while length(s)<>0 do begin buf:=buf+s[1]; delete(s,1,1); while pos(buf[length(buf)],s)<>0 do delete(s,pos(buf[length(buf)],s),1); end; DeleteRepeatChar:=buf; end;
использование
ss:=edit.text; label.caption:=DeleteRepeatChar(ss);
спасибо но не могли бы вы дать краткий комментарий к каждой строке? я не совсем могу разобраться
Delphi Warrior
Регистрация: 15.08.2008
Сообщений: 2,502
Function DeleteRepeatChar(s:string):string; var buf:string; begin while length(s)<>0 do //пока строка не пуста begin buf:=buf+s[1]; // запоминаем первый символ строки delete(s,1,1);//удаляем while pos(buf[length(buf)],s)<>0 do delete(s,pos(buf[length(buf)],s),1); //пока в строке есть сохранёный символ то удаляем его! end; DeleteRepeatChar:=buf; end;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq — 636-954-303
| Hacker19_90 |
| Посмотреть профиль |
| Найти ещё сообщения от Hacker19_90 |
Задача 1. Символы. Напишите программу, которая удаляет из строки все повторяющиеся символы.
Вы можете использовать эту функцию, чтобы удалить повторяющиеся символы из строки, как в примерах, которые вы привели:
input_string = "hbh1od2jf1mmk45m5"
output_string = remove_duplicates(input_string)
print(output_string) # hb1od2jfmk45
input_string = "h7fy4rno 3"
output_string = remove_duplicates(input_string)
print(output_string) # h7fy4rno 3
Можно записать данную функцию в 1 строку и результат будет такой же:
def remove_duplicates(string):
return ''.join(sorted(set(string), key=string.index))
Эта функция создает новую строку и добавляет каждый символ из исходной строки только в том случае, если он еще не был добавлен в новую строку. Таким образом, все повторяющиеся символы удаляются, а порядок символов в строке сохраняется.
Такой программы не существует в силу законов мироздания
def remove_duplicates(input_string):
result = »
for char in input_string:
if char not in result:
result += char
return result
# Пример 1
input_string = ‘hbh1od2jf1mmk45m5’
print(remove_duplicates(input_string))
# Пример 2
input_string = ‘h7fy4rno 3’
print(remove_duplicates(input_string))
Эта программа работает, проходя по каждому символу во входной строке и добавляя его в результирующую строку только в том случае, если он еще не присутствует в результирующей строке. Затем она возвращает результирующую строку. Вы можете заменить input_string на любую строку, которую вы хотите обработать.
Решение модуля 6.12 Инди-курс программирования на Python
Ваша программа получает на вход последовательность фраз, указанных через запятую.
Для каждой фразы выведите слово ДА (в отдельной строке), если эта фраза ранее встречалось в последовательности или НЕТ , если не встречалось.
Символы во фразах нужно рассматривать без учета регистра, это значит что фраза Hasta la vista BAby эквивалента фразе hasta La Vista baby
text = input().lower().split(',') # получаем строкe с фразами, опускаем её в нижний регистр и разбиваем её на список по разделителю "," set_text = set() # создаем пустое множество для добавления в него уникальных фраз for i in text: # проходимся по списку с фразами и каждую итерацию берём по фразе if i not in set_text: # если этой фразы нет в нащем множестве выводим НЕТ и добавляем его во множество print("НЕТ") set_text.add(i) else: # если же оно уже есть во множестве пишем НЕТ print('ДА')
Даны два списка чисел.
Выведите все числа, которые входят как в первый, так и во второй список в порядке возрастания.
# получаем строку и рарзбиваем её на список, затем преобразовывая числа из строк в числа конвертируем во множество a = # получаем строку и рарзбиваем её на список, затем преобразовывая числа из строк в числа конвертируем во множество b = # выводим распакованное пересечение двух множеств в порядке возрастания print(*sorted(a.intersection(b)))
Даны два списка чисел. Выведите все числа в порядке возрастания, которые входят в первый список, но при этом отсутствуют во втором.
# получаем строку и рарзбиваем её на список, затем преобразовывая числа из строк в числа конвертируем во множество a = # получаем строку и рарзбиваем её на список, затем преобразовывая числа из строк в числа конвертируем во множество b = # выводим распакованное множество значений встречающихся в первом множестве, но не встречающихся во втором print(*sorted(a.difference(b)))
Напишите программу, которая выводит все цифры, встречающиеся в символьной строке больше одного раза.
text = input() # вводим строку для подсчета set_text = set() # создаем пустое множество для добавления подходящих символов for i in text: # циклом проходимся по строке, каждую итерацию берём каждую букву if i.isdigit() and text.count(i) > 1: # проверяем если символ цифра и она встречается больше 1 раза добавляем во множество set_text.add(i) if len(set_text) >= 1: # если в нашем множестве есть цифры то. print(*sorted(set_text)) # выводим распакованное множество с повторяющимеся цифрами else: # иначе выводим NO print('NO')
Напишите программу, которая удаляет из строки все повторяющиеся символы, при этом регистр букв необходимо учитывать.
text = input() # вводим строку для обработки set_text = set(text) # преобразуем строку во множество for i in text: # проходимся по строке if i in set_text: # если такой символ есть в строке выводим его и удаляем из множества его print(i, end="") set_text.remove(i)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы