by Ivan Ivanov
Artwork: Иван Иванов 12в
Copyright © 2022
В различни интервюта биха тествали различни неща, например:
- Дали можете да пишете код (и дали кодът, който пишете, е хубав);
- Дали знаете популярни алгоритми и структури данни;
- Как бихте подходили към непознат проблем;
- Дали бихте проявили креативност при решаване на нестандартен проблем;
- Как бихте design-нали не-твърде-сложна но не и тривиална система;
- Други.
Най-често добрите въпроси са комбинация на две или повече от тези неща.
I.Алгоритмични задачи
При този тип задачи трябва да измислите алгоритъм или структура данни, която да се справя ефективно с даден проблем. Понякога има “врътка”, чието откриване води до решение на задачата чрез стандартен алгоритъм. В повечето интервюта след като измислите как да решите задачата, трябва да напишете и имплементация чрез код или псевдокод.
1.Сливащи се свързани списъци:
Дадени са ви указатели към първите елементи на два ациклични едносвързани списъка. Можете ли с константна памет и линейно време да определите дали в някой елемент единият списък не се “слива” във втория (тоест двата да завършват в един и същ елемент)? Ако да, можете ли да намерите кой е първият им общ елемент? Опишете алгоритъма си.
2.Точно едно повтарящо се число:
Дадени са ви N числа между 1 и N-1, включително. Всички числа са различни, с изключение на едно, което се повтаря. Намерете кое е то?
II.Имплементационни задачи:
Тези задачи обикновено имат минимално мислене и по-скоро се изисква добро познание от програмните езици и писането на код като цяло. Изисква се писане на код, като почти цялата оценка за задачата зависи от него.
1.Най-нисък бит:
Дадено ви е положително цяло число X. Намерете неговия най-нисък ненулев бит (lowest bit) или по-точно числото, което представя той (ако индексът е 3, то върнете 23 = 8).
Примери: за числото 42 (101010) трябва да върнете 2, докато за 88 (1011000) трябва да върнете 8. Най-ниските битове са най-надясно в двоичния запис на числото.
2.Избор на град според населението му:
Напишете функция, която по дадено множество от градове и тяхната популация, избира някой от тях, като шансът даден град да бъде избран е пропорционален на броя жители в него. Например ако градовете са София (1,263,328 жители), Стара Загора (150,081 жители), Варна (350,064 жители) би избрала София с шанс 71.638%, Стара Загора с шанс 8.511% и Варна с шанс 19.851%.
III.Езикови познания
Това са по-скоро въпроси, които могат да ви зададат по време на интервю. В тях рядко се изисква писане, но трябва добре да познавате езика за програмиране и като цяло различни програмни термини и идиоми.
1.Каква е разликата между “method” и “function”?
IV.Нестандартни задачи
Това са малко по-различни логически задачи, които тестват как разсъждавате и колко добре бихте апроксимирали нещо, за което нямате много информация, само изхождайки от логика и частични факти. От няколко години вече не се задават по повечето интервюта, тъй като са твърде нестандартни и често пропускат добри кандидати.
1.Колко бензиностанции има в България?
Благодаря за отделеното внимание!!!
Published: May 8, 2022
Latest Revision: May 8, 2022
Ourboox Unique Identifier: OB-1327725
Copyright © 2022