Задачи для IT интервью

Ответить
Аватара пользователя
AndreyT
Уже с Приветом
Сообщения: 3003
Зарегистрирован: Вт апр 13, 2004 8:11 pm
Откуда: SFBA (было: Минск, Беларусь)
Контактная информация:

Re: Задачи для IT интервью

Сообщение AndreyT »

Сабина писал(а):Задача написать clone метод для листа.
Сразу приходит в голову простое двухпроходное решение, если разрешается временно модифицировать входной список, т.е. временно установить поля 'random' входного списка в новые значения, а потом вернуть обратно (т.е. в итоге исходный список останется неизменным). Но такая возможность должна быть явно оговорена в постановке задачи, ибо традиционная каноническая постановка задачи предполагает, что входные данные являются read-only.
Best regards,
Андрей
helg
Уже с Приветом
Сообщения: 4827
Зарегистрирован: Вт май 15, 2001 4:01 am

Re: Задачи для IT интервью

Сообщение helg »

AndreyT писал(а):
Сабина писал(а):Задача написать clone метод для листа.
Сразу приходит в голову простое двухпроходное решение, если разрешается временно модифицировать входной список, т.е. временно установить поля 'random' входного списка в новые значения, а потом вернуть обратно (т.е. в итоге исходный список останется неизменным). Но такая возможность должна быть явно оговорена в постановке задачи, ибо традиционная каноническая постановка задачи предполагает, что входные данные являются read-only.
Можно вместо random модифицировать поля next исходного списка: на первом проходе вставлять клонированый узел в оригинальный список сразу за соответствующим неклонированым. Соглашусь с AndreyT, что это бомба замедленного действия. Стандартную реализацию clone() можно вызывать из нескольких нитей одновременно, равно как и другине немодифицирующие методы. А такую нельзя, - и умудрённый опытом инженер так писать не будет.
Аватара пользователя
John Smith
Уже с Приветом
Сообщения: 1681
Зарегистрирован: Ср окт 04, 2006 6:30 pm
Откуда: Las Vegas

Re: Задачи для IT интервью

Сообщение John Smith »

меп старых нодов на новые, тогда на очередном next node - если меппинг для него уже в мэпе есть - значит он у кого то был рандомом - нужно будет только проапдетить его data.
Сабина
Уже с Приветом
Сообщения: 19041
Зарегистрирован: Ср янв 11, 2012 3:25 am
Откуда: CA

Re: Задачи для IT интервью

Сообщение Сабина »

John Smith писал(а):меп старых нодов на новые, тогда на очередном next node - если меппинг для него уже в мэпе есть - значит он у кого то был рандомом - нужно будет только проапдетить его data.
Да, это второй правильный вариант, но есть еще вариант без мапа.
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Сообщения: 19041
Зарегистрирован: Ср янв 11, 2012 3:25 am
Откуда: CA

Re: Задачи для IT интервью

Сообщение Сабина »

Про первый вариант не совсем поняла почему "умудренный опытом инженер так писать не будет". Понятно же что это просто задачка на знание структур, а не попытка написать что-то thread safe etc. Кмк на интервю этот вариант именно и ожидается
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Сообщения: 19041
Зарегистрирован: Ср янв 11, 2012 3:25 am
Откуда: CA

Re: Задачи для IT интервью

Сообщение Сабина »

oops задачка и правда весьма заезженная оказалась
http://www.geeksforgeeks.org/a-linked-l ... t-pointer/" onclick="window.open(this.href);return false;
http://www.geeksforgeeks.org/clone-link ... ter-set-2/" onclick="window.open(this.href);return false;
https://www.youtube.com/watch?v=wOwblaKmyVw
avitya
Уже с Приветом
Сообщения: 3836
Зарегистрирован: Чт сен 13, 2007 5:06 am

Re: Задачи для IT интервью

Сообщение avitya »

Я ее только студентам дают. Решение с мап-ом не проходит, так как забыто основное условие задачи: дополнительная память O(1), ну кроме самого нового списка, само собой.
Для тех, кому легко, рекомендую сделать clone() для любого графа (сейчас это граф с 2 выходящими ребрами из каждой вершины, кроме последней). Не категорично сложнее, но но сложнее ;-)
helg
Уже с Приветом
Сообщения: 4827
Зарегистрирован: Вт май 15, 2001 4:01 am

Re: Задачи для IT интервью

Сообщение helg »

Сабина писал(а):Про первый вариант не совсем поняла почему "умудренный опытом инженер так писать не будет".
Побочных эффектов, пусть даже они у красивого решения, надо стараться избегать. В данном случае, клонированный список всё равно ест O(N) памяти, и потратить объём такого же порядка на временный маппинг в решении без побочных эффектов вполне нормально.
helg
Уже с Приветом
Сообщения: 4827
Зарегистрирован: Вт май 15, 2001 4:01 am

Re: Задачи для IT интервью

Сообщение helg »

avitya писал(а):Для тех, кому легко, рекомендую сделать clone() для любого графа (сейчас это граф с 2 выходящими ребрами из каждой вершины, кроме последней).
Уточните задачу. Несвязный граф, к примеру, подходит под определение "любой граф"?
Сабина
Уже с Приветом
Сообщения: 19041
Зарегистрирован: Ср янв 11, 2012 3:25 am
Откуда: CA

Re: Задачи для IT интервью

Сообщение Сабина »

кстати тут раньше был вопрос про url shortening service
вот отличный вариант как обставить это на девелоперском интервью
http://www.tawheedkader.com/2012/03/how ... r-startup/" onclick="window.open(this.href);return false;

Хотя вот тут например ответ весьма неэдентичный :)

http://www.careercup.com/question?id=14578080" onclick="window.open(this.href);return false;
Everytime when a url is to be shortened, url_id field is incremented, url_id is converted to base-36 ( 26 alphabets + 10 digits ) OR base-62 ( 26 small alphabets + 26 capital alphabets + 10 digits ) which serves as primary key for each tuple. A string i.e. the actual url is added corresponding to this key in database. The primary key is appended to service providers domain name after '/' and returned to the user.

Usually its better to add a new url_id rather than searching for existence of a url in database. So same url can be shortened to multiple short url's.

But some sites do take care of not adding multiple short url's in database if same user try to reproduce it. They consider user location for this purpose.
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Сообщения: 19041
Зарегистрирован: Ср янв 11, 2012 3:25 am
Откуда: CA

Re: Задачи для IT интервью

Сообщение Сабина »

Странное у меня interview сегодня было.
В позиции написано php, сама я на нее не апплаилась, менеджер сказал что no php - OK, они де все равно логику переносят на Go, все будут учить Go.
Начинается interview - шлют мне код на php. Смотрю там просто валидация данных обычной юзер формы - имя фамилию подрезать, емейл валидировать, соушал валидировать etc. Стала писать код на Джаве - парень меня останавливает что надо имплементировать как декоратор. Ну думаю ладно видимо какие то веши должны быть generic enough , pluggable. Создала generic декоратор с методами в тему. Он говoрит нет not generic enough. Почему говорит у вас обьект а не просто map. И еще наверное будет нужен adapter чтобы все эти decorations применить. Задачка де на design patterns. Я видимо чего то не понимаю в php или вообше в этой жизни но я не пойму каким боком для таких валидаций декораторы и адаптеры :pain1:
Точнее понимаю что php-щники бы наверное сразу поняли о чем речь (судя ои нагугленному)
http://forum.phalconphp.com/discussion/ ... validators" onclick="window.open(this.href);return false;

Но в Java world я бы наверное удивилась если бы попросили формы/user input валидровать через декораторы и адаптеры

PS. Видимо речь шла о функциональном стиле подходе где фунцкции применяются одна за другой не к обьектам, а как бы к data stream
Как в этом примере на Джава скрипте
http://robdodson.me/javascript-design-p ... decorator/" onclick="window.open(this.href);return false;
https://www.youtube.com/watch?v=wOwblaKmyVw
Аватара пользователя
FreemanUSA
Уже с Приветом
Сообщения: 349
Зарегистрирован: Вт июл 24, 2012 6:26 pm
Откуда: echo RU::US($me);

Re: Задачи для IT интервью

Сообщение FreemanUSA »

Мне дали задание для получения контрактной работы 35 в час, но я сказал что это мало, за решения и я хочу 50. Вопрос это много или нет. Принцип задание, работа с JSON объектом, но весь косяк заключается в том что браузер блокирует его с ошибкой типа “Uncaught SyntaxError: Unexpected token” или при другом подходе “ No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. ” и jQuery не работает, соответственно нужно попробывать первоисточник JavaScript. Для меня вообще бы проще было бы использовать PHP c jQuery, но они хотят что бы только Ajax. После этого расстасовку на веб страницу, ну и всякие само собой респосив дизай, попАп окна при нажатие и т.д. Может я утрирую и не такое это сложное задание.
Задание:
/*================================*/
ASSESSMENT INSTRUCTIONS
/*================================*/

1. Author all HTML5 and CSS to replicate the layout as prescribed in provided wireframe example (wireframe_example.jpg).

2. Consume the following service and populate the page with the products and pricing returned. http://m.lowes.com/IntegrationServices/ ... ts=5003703" onclick="window.open(this.href);return false;


3. Consume the response on front end.

4. User Experience: Page should be responsive with at least one mobile and/or tablet experience.

5. User Interactions:

a. When a user's mouse hovers over one of the products, the information for that product will appear in the larger "hero" area (to include switching the image asset from the smaller thumbnail to the medium image asset).

b. When a user clicks the "Add to Cart" element in the larger "hero" area, a JavaScript alert message will display the price of the item. The price displayed should be determined by the product shown in the masthead.

/*================================*/
IMPORTANT NOTE
/*================================*/

1. Please change the file extension of your external JavaScript file(s) to .txt before resubmitting to prevent Lowe's email system from removing them.
Последний раз редактировалось FreemanUSA Чт май 28, 2015 4:07 pm, всего редактировалось 1 раз.
assazello
Уже с Приветом
Сообщения: 1218
Зарегистрирован: Чт мар 05, 2015 6:18 pm
Откуда: San Jose, CA

Re: Задачи для IT интервью

Сообщение assazello »

avitya писал(а):Я ее только студентам дают. Решение с мап-ом не проходит, так как забыто основное условие задачи: дополнительная память O(1), ну кроме самого нового списка, само собой.
Для тех, кому легко, рекомендую сделать clone() для любого графа (сейчас это граф с 2 выходящими ребрами из каждой вершины, кроме последней). Не категорично сложнее, но но сложнее ;-)
Без информции об имплементации графа задача не имеет смысла. Грубый пример - если граф имплементирован в виде массива[N} вершин и массива{N,N] bool флагов присутствия ребра между i-й и j-й вершиной, то клонирование такого графа совершенно тривиально.
avitya
Уже с Приветом
Сообщения: 3836
Зарегистрирован: Чт сен 13, 2007 5:06 am

Re: Задачи для IT интервью

Сообщение avitya »

Если вы прочитали первую задачу, понятно, что граф реализован, как список узлов, где каждый узел хранящий список указателей на другие узлы (в том числе на себя).
helg
Уже с Приветом
Сообщения: 4827
Зарегистрирован: Вт май 15, 2001 4:01 am

Re: Задачи для IT интервью

Сообщение helg »

Первая задача - про односвязный список. У списка есть голова, а у каждого элемента - указатель на следующий. У графа таковых нет. В общем случае граф можно описать наборами вершин и рёбер, как предложил выше assazello.
Ответить

Вернуться в «Работа и Карьера в IT»