Удление дубликатов из строкового массива

Telta Avenger
Дата: 30.11.2007 08:39:59
Добрый день!

Подскажите пожалуйста какой-нибудь быстрый спсоб, чтобы удалть из стркового массива дублирующие значения. Например, есть массив:

'e' 'e' 't' 'h' 'n' 't' 'n' 'm' 't' 'e' 'h'
в идеале должн остаться:

'e' 't' 'h' 'n' 'm'

Заранее спасибо!
Dimitry Sibiryakov
Дата: 30.11.2007 08:57:58

Telta Avenger

Подскажите пожалуйста какой-нибудь быстрый спсоб, чтобы удалть из
стркового массива дублирующие значения. Например, есть массив:

Для таких мелких массивов должно хватить двух вложенных циклов и Delete.

Posted via ActualForum NNTP Server 1.4

Anatoly Podgoretsky
Дата: 30.11.2007 09:09:44
Что такое строковый массив, мы должны протелепатировать?
Dimkas
Дата: 30.11.2007 09:24:04
хорошим вариантом является недопускание появления дублей,
т.е. на этапе заполнения массива проверять нет ли такого элемента уже в массиве
как проверять? это уже зависит от способа заполнения. первое что приходит в голову - хеш-функции
Anatoly Podgoretsky
Дата: 30.11.2007 09:27:03
Какие еще хеш функции, для одиночных символов
Telta Avenger
Дата: 30.11.2007 09:30:44
Спасибо, решил задачу по-другому =) Вместо массива заюзал tstringlist - он умеет штатно отсеивать дублирующие значения на стадии заполнения:
tsl.sorted:=true;
tsl.duplicates:=dupIgnore;
tsl.add(somestring);
Dimkas
Дата: 30.11.2007 09:31:50
Anatoly Podgoretsky
Какие еще хеш функции, для одиночных символов

ord() - рекомендую ;)
Dimkas
Дата: 30.11.2007 09:38:21
Telta Avenger
Спасибо, решил задачу по-другому =) Вместо массива заюзал tstringlist - он умеет штатно отсеивать дублирующие значения на стадии заполнения:
tsl.sorted:=true;
tsl.duplicates:=dupIgnore;
tsl.add(somestring);

а если посмотреть в исходники то видим:

if Find(S, Result) then
      case Duplicates of
        dupIgnore: Exit;
...
т.е. как раз недопускает добавления если такой элемент уже есть...

ну а то что поиск работает в сортированных массивах черех половинное деление - это уже детали :)
Telta Avenger
Дата: 30.11.2007 09:41:39
Dimkas
т.е. как раз недопускает добавления если такой элемент уже есть...

Что, собственно, и было нужно =) На выходе получить список чего-либо без дублирующих значений.
Den!
Дата: 30.11.2007 16:02:50
Telta Avenger
Dimkas
т.е. как раз недопускает добавления если такой элемент уже есть...

Что, собственно, и было нужно =) На выходе получить список чего-либо без дублирующих значений.


Если не ошибаюсь, так можно получить только отсортированный список. Если вам важна последовательность элементов, то Duplicates не поможет.