Задача - Удаление лишних пробелов - программирование на разных языках

Задача — Удаление лишних пробелов — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Удаление лишних пробелов
— программирование на Pascal, Си, Кумир, Basic-256, Python

Вводится ненормированная строка, у которой могут быть пробелы в начале, в конце и между словами более одного пробела. Привести ее к нормированному виду, т.е. удалить все пробелы в начале и конце, а между словами оставить только один пробел.

Чтобы удалить все пробелы в начале строки, надо проверять первый символ, не является ли он пробелом, до тех пор, пока он им являться не будет. Если первый символ пробел, то его следует удалять.

Для удаления пробелов в конце используется примерно тот же алгоритм, что и для удаления в начале. Однако надо уменьшать на 1 индекс последнего элемента, если пробел был удален, или постоянно измерять длину строки (значение длины либо совпадает с последним индексом, либо меньше на 1).

Для удаления лишних пробелов внутри строки, надо, посимвольно перебирая строку, проверять, если очередной символ пробел, то не пробел ли следующий за ним. Если это так, то надо взять строку от начала до текущего (пробельного) символа включительно и присоединить к этой части часть строки, начинающуюся после второго пробела и до конца. При этом не надо увеличивать индекс элементов (т.к. может оказаться, что после удаленного пробела есть еще пробелы). Если же очередной символ не пробел или пробел, но после него идет не пробел, то надо перейти к следующему символу строки.

Pascal

var
str: string;
i: byte;
begin
readln(str);
i := 1;
while str[i] = ‘ ‘ do
delete(str,i,1);
while str[length(str)] = ‘ ‘ do
delete(str, length(str), 1);
i := 2;
while i < length(str) do
if (str[i] = ‘ ‘) and (str[i+1] = ‘ ‘) then
str := copy(str,1,i) + copy(str,i+2,length(str))
else
i := i + 1;
writeln(str);
end.    drink    who I mark   ten                  one   dump
drink who I mark ten one dump

Python

s = input()
i = 0
while s[i] == ‘ ‘:
s = s[1:] while s[len(s)-1] == ‘ ‘:
s = s[:-1] i = 1
while i < len(s)-1:
if s[i] == ‘ ‘ and s[i+1] == ‘ ‘:
s = s[:i+1] + s[i+2:] else:
i += 1
print(s)     ты что       делаешь    сейч
ты что делаешь сейч

КуМир

алг удаление пробелов
нач
лит s
цел i
ввод s
i := 1
нц пока s[i] = » »
s := s[2:длин(s)] кц
нц пока s[длин(s)] = » »
s := s[1:длин(s)-1] кц
i := 2
нц пока i < длин(s)
если s[i] = » » и s[i+1] = » » то
s := s[1:i] + s[i+2:длин(s)] иначе
i := i + 1
все
кц
вывод s
кон           кто   где когда   и почему
кто где когда и почему

Basic-256

input s$
i = 1
while mid(s$,1,1) = » »
s$ = right(s$,length(s$)-1)
end while

while mid(s$,length(s$),1) = » »
s$ = left(s$,length(s$)-1)
end while

i = 2
while i < length(s$)
if mid(s$,i,1) = » » and mid(s$,i+1,1) = » » then
s$ = left(s$,i) + right(s$,length(s$)-i-1)
else
i = i + 1
endif
end while
print s$   where      is   ball
where is ball

Did you find apk for android? You can find new Free Android Games and apps.

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