![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Pawl |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Вот, посмотрите, это то, что Вам надо? Я руководствовался условием:
Запустите программу и введите в консоль несколько раз слово temp Посмотрите вывод. Для выхода введите 0. P. S. Писал "на коленке", код не оптимальный, но рабочий. Если надо, могу оптимизировать. P. P. S. Помню, знакомый junior программером устраивался, ему нечто похожее задавали
-------------------- В действительности всё совсем не так, как на самом деле |
||||
|
|||||
| knopka |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 187 Регистрация: 17.1.2006 Где: Россия: Петербург Репутация: 1 Всего: 1 |
to Pawl спасибо за программу...
to Mirkes спасибо за
после этого наступило просветление Просьба покритиковать окончательное решение
|
||||
|
|||||
| Pawl |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
я не понял, а зачем тогда Вы ранее писали, что должно быть так:
Для определения, есть ли в списке искомый элемент, лучше вместо
написать так:
эффект тот же, но понятнее, короче и меньше переменных. А если Вам непременно хочется использовать indexOf() - уберите цикл, он тут лишний, т. к., если name есть в списке, он сработает ровно 1 раз, а если нет - прокрутится впустую, что увеличит время работы программы, а на результат никак не повлияет. -------------------- В действительности всё совсем не так, как на самом деле |
||||||
|
|||||||
| Mirkes |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 7 Всего: 17 |
Не совсем так. Поскольку name меняется в цикле то цикл действительно нужен. Вариант с contains вполне возможен. Думаю от дает тот-же ответ, просто без указания места в списке. Так что с ним тоже нужен будет цикл типа
Этот вариант мне то же нравится больше чем с indexOf, просто я не знал о contains -------------------- Mirkes |
||||
|
|||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Тогда надо менять логику метода. Вы запустите код и посмотрите как он работает: что есть цикл, что его нет, на выходе все-равно test1. Даже если в списке дважды встречается test, test12 не получается. -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Хотя, нет, не надо. Если в список добавить test1, то да, test12 получится.
-------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Karadul |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 0 Всего: 1 |
ТС-у категорически советую понять, что такое класс сложности. А если не в состоянии - пусть берет какой-нибудь LinkedHashSet и не парится.
|
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
ИМХО, совершенно непонятно, какое практическое применение у данной задачи! Я сужу по ее формулировке и приведенной реализации. Даже для тестовой она выглядит извращенно... А я тут извратился еще больше
-------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Karadul |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 0 Всего: 1 |
||||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Добавлено через 57 секунд что интересно, никогда на С не писал! -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| knopka |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 187 Регистрация: 17.1.2006 Где: Россия: Петербург Репутация: 1 Всего: 1 |
to Pawl посмотрите заголовок поста: Как избежать двойников в списке - двойников нет? нет! значит алгоритм работает.
и в вопросе я писал
задачу описал в предельно упрощённом виде, String и name - тоже упрощение. В реальности всё намного, намного сложнее. Но зачем утомлять коллег ненужной информацией... ну привёл бы я полное описание задачи строк на 400, кто бы его прочитал? Вы? Приведённого описания на мой взгляд вполне хватало для выбора алгоритма to Karadul
прежде, чем писать - прочитайте предыдущие сообщения! Я же не спрашивал, какой тип коллекции использовать, зачем тогда предлагать тоже, что уже предлагали. Добавлено через 29 секунд Вопрос решён |
||||||
|
|||||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Так я чё? Я ж ни чё - работает и слава Богу! Как гласит золотое правило программиста: работает - не трогай!
ну, значит и решение должно быть, типа, того! А серьезно - главное, что Вы разобрались с Вашей проблемой. -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| Karadul |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 0 Всего: 1 |
О господи! Модеры! Знающие люди! Вы здесь есть? Сделайте что-нибудь! Почему все толкают алгоритмы с O(n) и все молчат?
Вот, почитайте. |
|||
|
||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 7 Всего: 17 |
Гм... Господину Kardual действительно следует сделать замечание. Во первых, не прочитав постановку задачи и обсуждения дает рекомендации в несколько грубоватой форме. Во ворых, не задумывается над тем, что пишет. В третьих, рекомендует материал, решающий совершенно (принципиально) другую задачу. В четвертых, говорит о классах сложности, но видимо не совсем четко понимает как определить класс сложности задачи. В пятых поучает более опытных коллег по поводу использования или не использования синтаксиса языка Java. То что синтаксис языка С-подобен не вина и не заслуга пользователя, а просто факт. Прошу прощения, если получилось грубовато. -------------------- Mirkes |
|||
|
||||
| Karadul |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: 0 Всего: 1 |
Чё, серьезно?
Класс сложности будет O(n). Обьяснить почему или сам догадаешься? С HashMap был бы O(1). Ссылку я привел как пример того, что он может значить. Это надо было расписать для особо одаренных? Контрукция с ++ была убогая, и вообще замечание было полушутливое. А вот использование плохого класса сложности - просчет очень серьезный. А вот тебе бы в самый раз попытаться понять чужие посты, прежде чем пытаться их критиковать (выхлоп выше на критику не тянет). Сорри если грубовато получилось. Хотя так надо Почитай ссылочку выше. Работать то работало, но как строк стало не 20, а 20 тысяч, работать стало крайне хреново. Не уважают у вас тут класс сложности. Это только жавоиды или вообще все русские школолопрограммисты? Это сообщение отредактировал(а) Karadul - 22.3.2012, 19:30 |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |