|
#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пудова надо доводить до ума |