Здравствуйте, Vlad_SP, Вы писали:
V_S>Для элегантности же!
Знавал я одного такого любителя элегантности. Тем, кто после него разбирался в коде приходилось сидеть с листочком бумаги и разбираться что он там наэлегантил.
В жопу такую элегантность!!
Re[4]: Зачем просят перевернуть строку на интервью?
Здравствуйте, De-Bill, Вы писали:
Тё>>Сколько времени нужно, чтобы написать реализацию Array.reverse() из этого примера?
DB>Пару минут должно хватить. Но это уже другая задача. В отличие от строк практически во всех языках нам: 1) известна его длина в элементах, 2) по индексу есть доступ к каждому элементу, 3) массив изменяемый.
Не докапывайтесь к словам. Последовательность символов — не обязательно immutable класс String, это может быть массив, ArrayList и т.д.
Re[2]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Тёмчик, Вы писали:
Тё>Не докапывайтесь к словам. Последовательность символов — не обязательно immutable класс String, это может быть массив, ArrayList и т.д.
Вот тут нельзя не сказать про достоинства такого языка, как С++:
Здравствуйте, De-Bill, Вы писали:
Тё>>Не докапывайтесь к словам. Последовательность символов — не обязательно immutable класс String, это может быть массив, ArrayList и т.д.
DB>Почему не докапываться? Программирование — это такая вещь, где детали имеют значение.
А почему Вы не спросили, в чём строка? Я уже пару минусов бы Вам влепил на собеседовании- за отсутствие этого вопроса и за попытку избежать ответа на мою задачу. Подходящий кандидат сполуслова бы понял и не дал договорить- накидал ответ на доске.
Здравствуйте, Тёмчик, Вы писали:
Тё>и сколько времени можно на это потратить у доски?
Тё>Условие было такое: строка «один два три». Написать функцию на доске, чтобы поменять порядок символов внутри этой строки, не выделяя новой памяти (кроме временных переменных). Принимается ли решение через 15 минут?
Проверка, что ты не идиот.
Re[7]: Зачем просят перевернуть строку на интервью?
Тё>А почему Вы не спросили, в чём строка? Я уже пару минусов бы Вам влепил на собеседовании- за отсутствие этого вопроса и за попытку избежать ответа на мою задачу. Подходящий кандидат сполуслова бы понял и не дал договорить- накидал ответ на доске.
А с какого перепугу ты решил, что я пошёл бы к тебе на собеседование? Ну и если у вас в конторе ценится умение понимать с полуслова, не давать договорить и начинать сходу набрасывать, то вообще от вас подальше держаться надо.
Здравствуйте, Тёмчик, Вы писали:
Тё>Второе сравнение с —-last- это bad practice. Некрасивый трудночитаемый код.
Не для библиотечного кода, который характеризуется оптимальностью, а не читабельностью. Там даже комментарии не обязательны. А функция явно библиотечная, код красивый.
Тё>Напишите теперь переворот односвязного списка.
Напиши сперва реализацию односвязного списка, а я уже переверну.
Тё>И без стандартных функций пожалуйста, всё ручками.
Типа std::swap нельзя использовать? Вот это будет уже по-настоящему некрасивый код. Ты точно понимаешь задачу "реализовать такую-то функцию"? Это означает именно что реализовать функцию, её логику, а не весь стек абстракций, которые лежат внутри.
Здравствуйте, Тёмчик, Вы писали:
Тё>и сколько времени можно на это потратить у доски?
Тё>Условие было такое: строка «один два три». Написать функцию на доске, чтобы поменять порядок символов внутри этой строки, не выделяя новой памяти (кроме временных переменных). Принимается ли решение через 15 минут?
Что хочется узнать о кандидате? Что он может реализовать алгоритм переворота любой строки, что знает стандартную функцию для этого (если она есть в заданном языке), что знает отличие UTF-8 от других кодировок, что предпочитает решать частный случай, а не общий (если строка "один два три" и никакой другой не будет, то решение будет s = "ирт авд нидо"; , а лучше пару констант для этого сделать) или же это подготовка к тому, что бы поговорить об алгоритмической сложности?
Здравствуйте, Nuzhny, Вы писали:
Тё>>Второе сравнение с —-last- это bad practice. Некрасивый трудночитаемый код. N>Не для библиотечного кода, который характеризуется оптимальностью, а не читабельностью. Там даже комментарии не обязательны. А функция явно библиотечная, код красивый.
Комментарии там излишни, а 2 сравнения ==last и ==-last внутри одного условия уменьшают читабельность.
Тё>>Напишите теперь переворот односвязного списка. N>Напиши сперва реализацию односвязного списка, а я уже переверну.
Тё>>И без стандартных функций пожалуйста, всё ручками. N>Типа std::swap нельзя использовать? Вот это будет уже по-настоящему некрасивый код. Ты точно понимаешь задачу "реализовать такую-то функцию"? Это означает именно что реализовать функцию, её логику, а не весь стек абстракций, которые лежат внутри.
Там не нужен итератор, это твоя профессиональная деформация от C++ сказывается. Целочисленного индекса по массиву более, чем достаточно.
Re[9]: Зачем просят перевернуть строку на интервью?
Тё>Там не нужен итератор, это твоя профессиональная деформация от C++ сказывается. Целочисленного индекса по массиву более, чем достаточно.
По какому массиву? Ты же сам сказал, что может быть всё что угодно. К тому же в случае с С-строкой итератор вырождается в обычный указатель, никакого оверхеда. Тут наоборот есть вероятность, что индекса может не быть либо он будет O(n). Твой подход с индексами — отстой.
Если же хочется скорости на х86, то надо смотреть на что-то типа _mm_shuffle_epi8.
Здравствуйте, Тёмчик, Вы писали:
Тё>и сколько времени можно на это потратить у доски?
Тё>Условие было такое: строка «один два три». Написать функцию на доске, чтобы поменять порядок символов внутри этой строки, не выделяя новой памяти (кроме временных переменных). Принимается ли решение через 15 минут?
Как способ начать разговор.
Если решение есть в голове, то 10 минут. На доске неудобно писать.
Re[2]: Зачем просят перевернуть строку на интервью?
_>— Ну «садись»? А то перед тобой тут был один. Рассказывал мне, чем отличается сесть от присесть. Я его на хуй послал. А по телефону говорил, что не долбоёб. Или это ты говорил?
_>— Может, и я. Почему-то часто спрашивают.
У нас принято говорить о кандидатах "Адекватный" — одно из важнейших качеств. Вообще говоря, если программист умный, адекватный, в меру энергичный — то пофиг на его бэкграунд. Так что история про слесаря — очень в точку.
Здравствуйте, Transformerrr, Вы писали:
T>Бывает так,что человек может писать код, но не у доски. Со всякими collaborate тулзами то же самое.
А с коллегами он потом также код писать не сможет?
Не верю.
Re[4]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Nuzhny, Вы писали:
N>У доски в школе учат отвечать и писать на ней,
Увы, увы...
N>в вузе тоже.
Не помню чтобы в ВУЗе отвечал у доски, а это уже давненько было, вот лет за 25 до меня, говорят таки да, ответ на экзамен готовили на доске и потом отвечали как на школьном экзамене/уроке. Мы готовились на листочке бумаги, садились рядом с преподавателем и отвечали на вопросы билета и показывали решение задач если они были в билете преподавателю лично.
Но это так, лирическое отступление, в чем проблема написания в маленького кусочка кода на доске