![]() |
|
|
#1
|
|||
|
|||
|
Дана строка символов, состоящая из групп нулей и единиц, разделенных пробелами. Найти количество групп с пятью символами.
Подскажите,я новичок со строками слабенько) |
|
#2
|
||||
|
||||
|
А можно пример строки?
|
|
#3
|
|||
|
|||
|
ну как я понимаю такого плана
01001 0101 10101 01 и нужну вывести сколько групп с пятью символами |
|
#4
|
||||
|
||||
|
Код:
var
s: string; // ваша строка
i: Integer;
kol: Integer;
otvet: Integer;
begin
s:='01 11111 0101 1001...';
otvet := 0;
kol := 0;
for i:=1 to Length(s) do
if(s[i] = '0') or (s[i] = '1') then begin
inc(kol);
if(kol = 5) then
inc(otvet);
end
else
kol := 0;
//otvet - кол-во груп с 5ю символами
ShowMessage('Кол-во груп с 5ю символами = ' + IntToStr(otvet));ЗЫ это не идеальный вариант, написал то что пришло в голову первым.. Последний раз редактировалось v1s2222, 10.10.2010 в 15:25. |
|
#5
|
||||
|
||||
|
http://delphibasics.ru/AnsiPos.php
Вот эта ссылка + алгоритмика: пройтись циклом по строке Код:
var
str:string;
begin
str:='01001 0101 10101 01 ';
For i:=1 to length(str) do
begin
if str[i]<>' 'then k:=k+1
else if k=5 then
begin
count:=count+1;
k:=0;
end;к - переменная подсчёт символов от пробела до пробела count - кол-во подстрок длинной в 5ть символов В цикле организовать поиск "пробелов" и подсчёт знаков до ближайшего найденного. Писал на коленке. 100пудова надо доводить до ума |