Re[3]: Зачем просят перевернуть строку на интервью?
От: Stanislav V. Zudin Россия  
Дата: 10.10.18 13:46
Оценка:
Здравствуйте, Vlad_SP, Вы писали:

SVZ>> А теперь усложним задание: ......


V_S>И сразу вспомним анекдот про суровых челябинских мужиков и японскую бензопилу


Я подозреваю, что условие задачи Тёма сильно упростил , а может и неправильно понял.
_____________________
С уважением,
Stanislav V. Zudin
Re: Зачем просят перевернуть строку на интервью?
От: zverjuga Беларусь  
Дата: 10.10.18 15:42
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>не выделяя новой памяти (кроме временных переменных).


и вот зачем это? сразу отметается возможность использования уже готовых решений, встроенных во фрэймворк. к реальной жизни и работе этот тест не имеет никакого отношения, так как никто не будет париться чтобы писать самодельную переворачивалку.
проклятый антисутенерский закон
Re[4]: Зачем просят перевернуть строку на интервью?
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 10.10.18 15:59
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>У доски в школе учат отвечать и писать на ней, в вузе тоже.


Ни в школе ни в университете не было принято отвечать у доски. Правда, специфика — Канада.
Ce n'est que pour vous dire ce que je vous dis.
Re[2]: Зачем просят перевернуть строку на интервью?
От: AndyCyp США  
Дата: 10.10.18 16:09
Оценка: 1 (1) +1
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, Тёмчик, Вы писали:


Тё>>Условие было такое: строка «один два три». Написать функцию на доске, чтобы поменять порядок символов внутри этой строки, не выделяя новой памяти (кроме временных переменных). Принимается ли решение через 15 минут?


SVZ>А теперь усложним задание: Написать функцию на доске, чтобы не выделяя новой памяти инвертировать порядок слов в строке.

SVZ>Т.е. "один два три" --> "три два один".

Элементарно, Ватсон! Сначала разворачиваем всю строку, потом каждое слово в отдельности. Блумберг на телефонном интервью спрашивал (На С++ позицию)
Re[3]: Зачем просят перевернуть строку на интервью?
От: Stanislav V. Zudin Россия  
Дата: 10.10.18 16:20
Оценка:
Здравствуйте, AndyCyp, Вы писали:

SVZ>>А теперь усложним задание: Написать функцию на доске, чтобы не выделяя новой памяти инвертировать порядок слов в строке.

SVZ>>Т.е. "один два три" --> "три два один".

AC>Элементарно, Ватсон! Сначала разворачиваем всю строку, потом каждое слово в отдельности. Блумберг на телефонном интервью спрашивал (На С++ позицию)


Вот взял и всю интригу испортил
Мне в АМД её задавали, писать код не требовалось.
_____________________
С уважением,
Stanislav V. Zudin
Re[6]: Зачем просят перевернуть строку на интервью?
От: alexzzzz  
Дата: 10.10.18 17:46
Оценка: +1
Здравствуйте, Nuzhny, Вы писали:

N>Вот тут нельзя не сказать про достоинства такого языка, как С++:

N>
N>template<class BidirIt>
N>void reverse(BidirIt first, BidirIt last)
N>{
N>    while ((first != last) && (first != --last)) {
N>        std::iter_swap(first++, last);
N>    }
N>}
N>

Пока первый не равен последнему и одновременно первый не равен не совсем последнему, менять между собой не совсем первый и последний. С++ будто заставляет программистов специально так писать, чтобы было сходу неочевидно и приходилось расшифровывать. Конечно, может быть, что так оно работает быстрее всего, но читать подобное обычно неприятно.
Re[3]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>А если очень давно учился, и забыл? Может быть такое?

Это сразу досвидос, тест на профпригодность завален.
Если инженер не может такой элементарный алгоритм из головы родить — "это не инженер а говно" (тм)
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[3]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка: +1
Здравствуйте, Transformerrr, Вы писали:

T>Бывает так,что человек может писать код, но не у доски. Со всякими collaborate тулзами то же самое.

На доске писать код реально неудобно, да.
Но с другой стороны кода тут совсем чуть чуть.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка: -1
Здравствуйте, De-Bill, Вы писали:

DB>
DB>s[::-1]
DB>


По условиям задачи на собеседованиях надо как раз in-place.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Не надо её переворачивать, всегда можно взять rend().

Нельзя. По условиям задачи надо именно изменить данные.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка: +2
Здравствуйте, De-Bill, Вы писали:

DB> Array.Reverse( charArray );


Ты теряешь главный нюанс этого вопроса: просят написать алгоритм, который собственно переворачивание будет делать полностью сам.
Язык и правда не важен, встроенные переворачиваторы в решении использовать нельзя.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[6]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>Почему не докапываться? Программирование — это такая вещь, где детали имеют значение.

Артёмка тут как раз прав.
Не надо докапываться.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[9]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Комментарии там излишни, а 2 сравнения ==last и ==-last внутри одного условия уменьшают читабельность.

Bullshit же!

Тё>Там не нужен итератор, это твоя профессиональная деформация от C++ сказывается. Целочисленного индекса по массиву более, чем достаточно.

Это ты уже доколупываешься.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Так, что ли?


Как бы да, но...
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Зачем просят перевернуть строку на интервью?
От: CreatorCray  
Дата: 10.10.18 18:55
Оценка:
Здравствуйте, koodeer, Вы писали:

K>Во многих языках/платформах строки иммутабельные. В частности, в Java, .NET, Python... В них нельзя перевернуть строку по месту.

Варианта 2:
1. Выбери другой язык
2. Переворачивай не строку а массив символов

K>Также вызывает недоумение, что никто даже не вспомнил о юникоде. Многобайтовые кодировки, суррогатные пары, всё такое... Нужно же не просто байты перекинуть, а символы.

Любопытным отвечают что по условиям задачи строка ASCII. Задача не про это.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Зачем просят перевернуть строку на интервью?
От: Тёмчик Австралия жж
Дата: 10.10.18 19:03
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>А теперь усложним задание: Написать функцию на доске, чтобы не выделяя новой памяти инвертировать порядок слов в строке.

SVZ>Т.е. "один два три" --> "три два один".

Это было задание. Когда чел совсем застопорился, я упростил в надежде, что он подхватит идею быстро и потом вторую половину сделает. Но он и упрощённое делал с подсказками и 15 минут. Мастер в компьютер саенс в европейском университете, говорит связно, на вид неглупый. Как такое может быть, я хз. Но я там вообще случайно оказался- челу можно сказать, не повезло.
Re[10]: Зачем просят перевернуть строку на интервью?
От: Тёмчик Австралия жж
Дата: 10.10.18 19:10
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

Тё>>Комментарии там излишни, а 2 сравнения ==last и ==-last внутри одного условия уменьшают читабельность.

CC>Bullshit же!

Тё>>Там не нужен итератор, это твоя профессиональная деформация от C++ сказывается. Целочисленного индекса по массиву более, чем достаточно.

CC>Это ты уже доколупываешься.
Ну зачем итераторы C++ пихать? Я то знаю, что массив можно скормить как 2 итератора-указателя. Но блин, в моей вселенной никому не нужен C++. Так почему бы не выпендриваться и не сделать с массивом и индексами.
Re[3]: Зачем просят перевернуть строку на интервью?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 10.10.18 19:53
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>А если очень давно учился, и забыл? Может быть такое?


Забыл, как думать?
Re: Зачем просят перевернуть строку на интервью?
От: vsb Казахстан  
Дата: 10.10.18 19:55
Оценка: -1
Здравствуйте, Тёмчик, Вы писали:

Тё>Условие было такое: строка «один два три». Написать функцию на доске, чтобы поменять порядок символов внутри этой строки, не выделяя новой памяти (кроме временных переменных). Принимается ли решение через 15 минут?


Что за язык? На Java такое без хаков не сделать.
Re[3]: Зачем просят перевернуть строку на интервью?
От: vsb Казахстан  
Дата: 10.10.18 19:58
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

K>>Также вызывает недоумение, что никто даже не вспомнил о юникоде. Многобайтовые кодировки, суррогатные пары, всё такое... Нужно же не просто байты перекинуть, а символы.

CC>Любопытным отвечают что по условиям задачи строка ASCII. Задача не про это.

Кстати интересно перевернуть UTF-8 строку. В принципе решается аналогично словам, но всё же. Заодно и кругозор можно проверить (знает ли человек, как кодируется UTF-8).
Отредактировано 10.10.2018 19:59 vsb . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.