ITренировка — актуальные brain teaser’ы от ведущих компаний

от автора

Многие наслышаны о каверзных вопросах и задачах, которые дают на собеседованиях в Google, Microsoft, Apple, Intel, IBM, Amazon, SpaceX, Yahoo, Facebook, etc., а также российских Яндекс и Mail.ru. Они нацелены на оценку технических навыков или проверку университетских знаний, логики, мышления.

Прежде чем подать резюме, лучше основательно подготовиться, решив хотя бы несколько таких задач. Реальные задания можно отыскать в сети. Их выкладывают как разработчики, так и сами компании.

Этой статьей мы открываем рубрику, в которой будем публиковать несколько свежих задач или вопросов. Ответы и решения будут появляться в течение недели после публикации. Свое решение также можно предлагать в комментариях.

На этой неделе мы публикуем 5 интересных задач, которые недавно предлагал решить разработчикам Google.

1. Создайте случайное 4-значное четное число. Две смежные цифры должны быть разными.
public int getNumber(){
}

2. Для введенного слова найдите следующее в лексикографическом порядке из представленных в массиве.
Пример:
Список слов:
[Cat, dog, cow, donkey, zebra, monkey],
input
duck
output
monkey

Input
dog
output
donkey

Можете ли вы использовать для решения дерево?
public String findNextWord(List words, String input){
}

3. Учитывая массив целых чисел, распечатайте все числа, удовлетворяющие следующему требованию:
когда число больше каждого числа слева и меньше каждого числа справа.

4. Для строковой химической формулы типа «C6H2 (NO2) 3CH3» выведите карту с ключом в качестве элемента и значением в качестве его числа.
Элемент может иметь два символа, например Fe2(SO4)3
public HashMap<Character, Integer> getCount(String chemicals){
}

5. В школе студент получает вознаграждение, если имеет не более 1 пропуска и 3 опозданий. Учитывая запись посещаемости студента, представленную строкой с тремя возможными символами «L» («Опоздал»), «A» (Отсутствовал), «O» («Пришел вовремя»)
Проверьте, имеет ли студент право на вознаграждение.
Пример:
@INPUT (String) «OLLAOOOLLO»
RETURN (Boolean) False
Студент не может претендовать на вознаграждение, потому что «LLA» означает, что он опоздал 3 раза подряд.

@INPUT (String) «OLLOAOLLO»
RETURN (Boolean) True

Дополнительно:
Если известно, что длина строки посещаемости — n, сколько есть способов посещения с получением вознаграждения.
ссылка на оригинал статьи https://habrahabr.ru/post/328454/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *