Напишите программу которая удаляет из строки все повторяющиеся символы
Перейти к содержимому

Напишите программу которая удаляет из строки все повторяющиеся символы

  • автор:

Повторяющийся символы в строке в языке 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

Добавил ваш код в вопрос. Но не уверен про отступы. Не пишите код в комментариях, он там не форматируется нормально. В общем, это неправильный путь, просто попробуйте запоминать предыдущий символ и сравнивать с ним текущий. Потом либо печатайте символ либо не печатайте. Либо копите символы в строке или списке и выводите потом. Заменой строки лучше не пользоваться кроме случаев, когда вам надо какой-то символ совсем из строки удалить, у вас не тот случай.

Напишите программу, которая удаляет из строки все повторяющиеся символы

Author24 — интернет-сервис помощи студентам

Напишите функцию, которая удаляет из переданной ей символьной строки все символы, заключенные в угловые скобки »
Напишите функцию, которая удаляет из переданной ей символьной строки все символы, заключенные в.

Напишите программу, которая удаляет из строки все повторяющиеся символы
Напишите программу, которая удаляет из строки все повторяющиеся символы. Входные данные На вход.

Программа, которая удаляет из строки все повторяющиеся символы
Напишите программу, которая удаляет из строки все повторяющиеся символы. Входные данные На вход.

Напишите программу которая удаляет все символы а,б,в
Напишите программу которая удаляет все символы а,б,в. В программе запрещено использовать Delete.

Регистрация: 24.03.2021

Сообщений: 2

1 2 3
string = input() lst = ''.join([letter for letter in list(string) if string.count(letter) == 1]) print(lst)

Задача 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 на любую строку, которую вы хотите обработать.

Напишите программу, которая удалит все повторяющиеся символы из введенной строки, оставив только уникальные символы.

Задание: Удаление повторяющихся символов Описание: Напишите программу, которая удалит все повторяющиеся символы из введенной строки, оставив только уникальные символы.

Лучший ответ

#include 
#include
#include
using namespace std;
int main() <
string line;
getline(cin, line);
unordered_set box;
for (auto x : line) <
if (!box.contains(x)) <
box.insert(x);
>
>
const auto count = box.size();
if (line.length() != count) <
string tmp;
for (auto ch : line) <
if (tmp.find(ch) == string::npos) <
tmp += ch;
if (count == tmp.length()) <
break;
>
>
>
line = tmp;
>
cout >

Остальные ответы
Сколько платишь?
Не интересует

Чтобы сделать за один проход надо создать словарь встретивштхся символов, и выделить на него память как длина основного массива

Либо без выделения памяти за квадратичное время жля каждого сивола делать проход

#include 
#include
#include

int main () <
std::string str = "dafhugidshfighiheg9erg9he9rghodfghodhfgoidfg";
std::string result_str;
std::set char_set;
for (auto i = 0; i < str.length(); i++) <
if (char_set.insert(str[i]).second) <
result_str += str[i];
>
>
std::cout std::cout >

Регулярками как то так

/(.)+\1+/g заменить на $1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *