Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

надо проверить её на наличее двух одинаковых символов [D6]


Beginer1 ©   (2002-10-02 19:52:00) 

Доброго времени суток.
Вопрос может показаться простым, но я не волшебник, я только учусь
ближе к суте:
генерируесся строкаю надо проверить её на наличее двух одинаковых символов, но так чтобы была одна пара одинаковых символов
Пример:
bydstik - не подходит (нет одинаковых символов)
tyuiopv - не подходит (нет одинаковых символов)
awrcayu - подходит (одна пара одинаковых символов)
fghjvfv - не подходит (две пары одинаковых символов)
qrqucrn - не подходит (две пары одинаковых символов)
thgotpt - не подходит (больше двух одинаковых символов)


А потом проверить на наличие этой строки в Memo1 и если нет то занести


Beginer1   (2002-10-07 17:59:00) [1]

Спасибово :)


MsGuns   (2002-10-02 22:33:00) [2]

fleq:=false
if Length(Stroka)>1 then
for i:=1 to Length(Stroka)-1 do
if Pos(Stroka[i],Copy(Stroka,i+1,Length(Stroka)-i)>0 then
begin
fleq:=true;
break;
end;


TTCustomDelphiMaster   (2002-10-02 20:28:00) [3]

Несколько мыслей по поводу...

1. Обнуляете массив
k: array [0..255] of integer;

2. for i := 1 to Length(str) do
inc(k[ord(str[i])]);

3. n2p := 0; // то что Выс интересует
n3p := 0; // то что Вам не нужно

for i := Low(k) to High(k) do
begin
if k[i] = 2 then inc(n2p);
if k[i] > 2 then inc(n3p);
end;

4. if (n2p=1) and (n3p=0) then подходит;

5. F1 - TStringList.Duplicates

Оптимизируйте по вкусу ;)


Наверх

Титульная страница Поиск, карта сайта Написать письмо