Здравствуйте, pagid, Вы писали:
P>Не помню чтобы в ВУЗе отвечал у доски, а это уже давненько было, вот лет за 25 до меня, говорят таки да, ответ на экзамен готовили на доске и потом отвечали как на школьном экзамене/уроке. Мы готовились на листочке бумаги, садились рядом с преподавателем и отвечали на вопросы билета и показывали решение задач если они были в билете преподавателю лично.
Да не на экзамене, на семинарах. Мел, доска, матрицы, дифуры, все дела. Не думаю, что доска уже ушла из высшей школы. Возможно, что мел заменили маркеры или интерактивные доски, но всё равно — доски.
Re[6]: Зачем просят перевернуть строку на интервью?
Бегло просмотрел ответы в теме. Большинство провалили тест. Сказано же:
не выделяя новой памяти
Во многих языках/платформах строки иммутабельные. В частности, в Java, .NET, Python... В них нельзя перевернуть строку по месту.
Однако, например, C# может работать с указателями, что позволяет, минуя управляемый код, добиться желаемого.
Также вызывает недоумение, что никто даже не вспомнил о юникоде. Многобайтовые кодировки, суррогатные пары, всё такое... Нужно же не просто байты перекинуть, а символы.
Идём дальше. В юникоде символы могут скомбинированы из двух знаков: сам символ + диакритический знак. При развороте строки, естественно, нужно их учитывать. Это легко сделать, если строка нормализована (выполнена композиция). Но вспоминая условие: не выделяя новой памяти...
Сюда же можно отнести наличие ударений в словах. При побайтовом развороте оно окажется на другой букве.
В общем, переворот строки — очень хороший тест.
Re[3]: Зачем просят перевернуть строку на интервью?
LVV>>В книге Бентли "Жемчужины программирования" в разделе 2.3 Мощь элементарного на странице 32-33 LVV>>рассматривается этот алгоритм. LVV>>И приводится удивительно элегантное рекурсивное решение. Тё>Зачем там рекурсия?
Прошу пардону.
Там реверс строки используется для реализации циклического сдвига строки на n позиций за О(n).
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Vlad_SP, Вы писали:
V_S>Дык, эта... Если нет ТЗ, то результат V_S>Как задача поставлена — так она и решена. А постановщик задачи — кто?
В задании сказано: не выделяя новой памяти. А многие стали предлагать решения, которые не выполняют это условие.
Вполне резонно ожидать от тестируемого, что человек должен иметь представление о внутреннем устройстве строк как минимум. Понимание кодировок — плюс. Представление об умляутах и пр. — большой плюс (но не в каждой области нужно, поэтому незнание в минус не пойдет).
Re[3]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Masterspline,
M> Например, если ты начнешь обменивать символы внутри строки, нужно догадаться дойти только до середины, чтобы не поменять их два раза.
Догадаться?? У программистов с какой-никакой практикой это уже в подкорке сидит, не?
Re[10]: Зачем просят перевернуть строку на интервью?
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, Тёмчик, Вы писали:
ну, если смотреть на машину в лоб, то лево\право как бы меняються, если смотреть с заду на нее. В общем зависит от точки зрения\отсчета. Знания где лево\право может и не помочь.
Re[3]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Тёмчик, Вы писали:
RF>>Так, что ли?
Тё>РашнФелоу, если Вы это не с гугла сейчас утащили, а по памяти- вы 100% ответили на мой коварный вопрос!
Случилось чудо! Друг нашёл друга!
kalsarikännit
Re[2]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, Тёмчик, Вы писали:
Тё>>и сколько времени можно на это потратить у доски?
N>Просто проверить, что человек может писать код.
Любой дурак может написать код для изолированной технической задачи. Это самая лёгкая часть работы.
Здравствуйте, Тёмчик, Вы писали:
Тё>Условие было такое: строка «один два три». Написать функцию на доске, чтобы поменять порядок символов внутри этой строки, не выделяя новой памяти (кроме временных переменных). Принимается ли решение через 15 минут?
А теперь усложним задание: Написать функцию на доске, чтобы не выделяя новой памяти инвертировать порядок слов в строке.
Т.е. "один два три" --> "три два один".
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Vladek, Вы писали:
N>>Просто проверить, что человек может писать код. V>Любой дурак может написать код для изолированной технической задачи. Это самая лёгкая часть работы.
Не согласен.
Re[3]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Vladek, Вы писали:
N>>Просто проверить, что человек может писать код.
V>Любой дурак может написать код для изолированной технической задачи.
Ты не поверишь...
_____________________
С уважением,
Stanislav V. Zudin
Re[2]: Зачем просят перевернуть строку на интервью?