![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
массив и индесы [D7, XP]
hahol_64_rus © (2008-03-25 01:30:00)привет мастерам
вот вопросик
есть массив , состоит из символов
как например проверить есть ли в этом массиве определенный символ и узнать его индекс
возможно ли это без перебирания всего массива
Anatoly Podgoretsky (2008-03-26 01:57:00) [1]> korneley (26.03.2008 00:24:18) [18]
Ну на то мы и телепаты.
korneley (2008-03-26 00:24:00) [2]
> дал правильноерешение
При всём уважении, но это как же телепатировать надо! "Неблагодарное это занятие - бить красных" (с)
Anatoly Podgoretsky (2008-03-25 23:59:00) [3]> Семеныч (25.03.2008 22:57:15) [15]
Ладно не хочу тебя пытать через длину, тем более, что дал правильное решение через множество, оно как раз для подобного и предназначено, конечно если у него AnsiChar
korneley (2008-03-25 23:35:00) [4]
> как например проверить есть ли в этом массиве определенный
> символ и узнать его индекс
А строка не массив символов? В широком понимании этого слова (массив). Просто pos(). И если не ноль, то и индекс... :) Повторные включения - отдельный случай.
Семеныч (2008-03-25 22:57:00) [5]> Anatoly Podgoretsky © (25.03.08 21:57) [13]
Не поверишь - по длине.
:о)
А вообще, для того, чтобы рассматривать эту возможность и способы ее реализации, нужно знать задачу (о чем и было сказано). Возможно, здесь лучше подойдет даже и не массив, а множество. Мы не знаем деталей.
Anatoly Podgoretsky (2008-03-25 21:58:00) [6]Есть конечно еще один вариант, без признака и не boolean.
Anatoly Podgoretsky (2008-03-25 21:57:00) [7]А как ты отличишь наличие или отсутствие символа в массиве без наличия признака
> то можно индекс массива сделать типа char.
У тебя будет массив на 256 символов и отсутствие инфорамации, или ты предлагаешь массив типа boolean - тогда извиняюсь.
Семеныч (2008-03-25 18:02:00) [8]> Anatoly Podgoretsky © (25.03.08 13:59) [11]
?
Anatoly Podgoretsky (2008-03-25 13:59:00) [9]
> Если позволяет задача, то можно индекс массива сделать типа
> char. Тогда ни перебирать, ни сортировать ничего и вовсе
> не придется.
Предлагаешь потерять один символ из набора 0..255 или 0..65535
TUser (2008-03-25 07:36:00) [10]result := length (YourArray) > 0;
if result then
YourArray [0] := YourSymbol;
Ega23 (2008-03-25 06:42:00) [11]Почитай про Ord и чуть-чуть подумай.
Германн (2008-03-25 02:48:00) [12]
> хатяб принцип обьесните
Не прочитал вовремя! Если бы прочитал, то не ответил бы.
hahol_64_rus (2008-03-25 02:17:00) [13]спс
Семеныч (2008-03-25 02:16:00) [14]Если позволяет задача, то можно индекс массива сделать типа char. Тогда ни перебирать, ни сортировать ничего и вовсе не придется.
Германн (2008-03-25 02:09:00) [15]http://algolist.manual.ru/search/index.php
hahol_64_rus (2008-03-25 02:03:00) [16]да он отсортирован
там символы от А до Я
каким образом ускорить
хатяб принцип обьесните
алгоритм сам до телепаю .... наверно
Германн (2008-03-25 01:57:00) [17]
> guav © (25.03.08 01:46) [2]
Если массив отсортирован, то можно "ускорить" процесс нахождения нужного элемента массива. Но не более того.
Но думаю, что автор вопроса просил "готовое решение", чтобы меньше самому писАть. И такое решение есть. Но я (как и Баба Яга) против. :)
guav (2008-03-25 01:46:00) [18]иногда можно и без полного перебора, например, если известно, что массив отсортирован. в общем случае - нет.
Германн (2008-03-25 01:42:00) [19]
> hahol_64_rus (25.03.08 01:30)
>
> привет мастерам
> вот вопросик
> есть массив , состоит из символов
> как например проверить есть ли в этом массиве определенный
> символ и узнать его индекс
> возможно ли это без перебирания всего массива
>
Нет, если его там (в массиве) нет. И да, если он там есть, но не является "крайним" в массиве.