Вводится строка. Требуется удалить из нее повторяющиеся символы и все пробелы. Например, если было введено «abc cde def», то должно быть выведено «abcdef».
Проще всего задачу решить, если формировать результирующую строку в другой переменной, а не изменять значение переменной, которой была присвоена введенная строка.
Извлекать каждый символ введенной строки. Если он не встречается в новой строке и не является пробелом, то добавлять его в конец новой строки.
Pascal
var
s1,s2: string;
c: char;
i: byte;
begin
readln(s1);
s2 := '';
for i:=1 to length(s1) do begin
c := s1[i];
if (pos(c,s2) = 0) and (c <> ' ') then
s2 := s2 + c
end;
writeln(s2);
end.
abc cde def
abcdef
Язык Си
#include < string.h>
main() {
char s[100], s_new[100];
char c, i, j;
gets(s);
j = 0;
for (i=0; i< strlen(s); i++) {
c = s[i];
if (strchr(s_new,c) == NULL && c != ' ') {
s_new[j] = c;
j += 1;
}
}
s_new[j] = '\0';
puts(s_new);
}
cpu gpu mb cooler
cpugmboler
Python
удалить повторяющиеся символы в строке python
# Вариант 1
s = input()
s_new = ''
for i in range(len(s)):
if s_new.find(s[i]) == -1 and s[i] != ' ':
s_new += s[i]
print(s_new)
# Вариант 2
s = input()
s_new = ''
for i in s:
if i not in s_new and i != ' ':
s_new += i
print(s_new)
a a b d c a c k l c d f
abdcklf
Basic-256
input s$
s_new$ = mid(s$,1,1)
for i=2 to length(s$)
a$ = mid(s$,i,1)
if instr(s_new$,a$) = 0 and a$ <> " " then
s_new$ = s_new$ + a$
endif
next i
print s_new$
Если изначально s_new$ присвоить пустую строку, то вызов функции instr() вызывает ошибку.
Подписаться
1 Комментарий
Новые
СтарыеПопулярные
Межтекстовые Отзывы
Посмотреть все комментарии
Сергей
1 год назад
njg
Pascal
var s1,s2: string; c: char; i: byte; begin readln(s1); s2 := ''; for i:=1 to length(s1) do begin c := s1[i]; if (pos(c,s2) = 0) and (c ' ') then s2 := s2 + c end; writeln(s2); end.
abc cde def abcdef
Язык Си
#include < string.h> main() { char s[100], s_new[100]; char c, i, j; gets(s); j = 0; for (i=0; i< strlen(s); i++) { c = s[i]; if (strchr(s_new,c) == NULL && c != ' ') { s_new[j] = c; j += 1; } } s_new[j] = '\0'; puts(s_new); }
cpu gpu mb cooler cpugmboler
Python
удалить повторяющиеся символы в строке python
# Вариант 1
s = input() s_new = '' for i in range(len(s)): if s_new.find(s[i]) == -1 and s[i] != ' ': s_new += s[i] print(s_new)
# Вариант 2
s = input() s_new = ''
for i in s: if i not in s_new and i != ' ': s_new += i
print(s_new)
a a b d c a c k l c d f abdcklf
Basic-256
input s$ s_new$ = mid(s$,1,1) for i=2 to length(s$) a$ = mid(s$,i,1) if instr(s_new$,a$) = 0 and a$ " " then s_new$ = s_new$ + a$ endif next i print s_new$
Если изначально s_new$ присвоить пустую строку, то вызов функции instr() вызывает ошибку.
njg