вот-вот. этого вполне достаточно должно быть. не суть вопроса обьяснить как действует а в чем конечный эффект. я бы начал говорить о каталогизации сначала, потом о мгновенной передаче.
Часть этих задачек (плюс другие) рассмотрена в книге "Как сдвинуть гору Фудзи" Уильяма Паундстоуна. Там и про процесс приема на работу в Майкрософт есть. :)
Раньше лежала в электронном виде на русском языке на lib.aldebaran.ru, но сейчас ее почему-то убрали. Оригинала на английском не искал.
А, вот вы о чём. Но всё равно ж придётся со словарём сравнивать, чтобы найти настоящие слова. Нет, не думал об этом. Наверное, есть эффективные алгоритмы, не требующие разложения на множители в общей форме (потому что множество искомых множителей у нас сильно ограничено).
Please write code to answer the following problems. Answers will be scored based on correctness, efficiency, and readability. You may only use C/C++ programming language reference materials. Please don't use CRT, STL, etc. library functions.
1. Implement the C runtime library function strstr. strstr returns a pointer to the first occurrence of strSearch in string, or NULL if strSearch does not appear in string. If strSearch points to a string of zero length, the function returns string. The search does not include terminating null characters.
2. Implement the following function for sorting a linked list of integers in ascending order. The function takes a pointer to the head of the list, and returns a pointer to the head of the sorted list. Your function should use only a constant amount of memory. It's prohibited to change the value of ListNode, instead ListNodes must be rearranged.
struct ListNode
{
int value() { return _value; }
ListNode *pNext;
private:
int _value;
};
ListNode* SortList(ListNode *pHead)
{
// Insert your implementation here
}
3. Implement the following function, FindSortedArrayRotation, which takes as its input an array of unique integers that has been sorted in ascending order, then rotated by an unknown amount X where 0 <= X <= (arrayLength - 1). An array rotation by amount X moves every element array[i] to array[(i + X) % arrayLength]. FindSortedArrayRotation discovers and returns X by examining the array. You may be able to do this in less than linear time.
int FindSortedArrayRotation(int *array, int arrayLength)
В копилку - мои три копейки: задачки с древнего интервью в Интеле.
*** В ряд построены 100 електрических лампочек с пуговкой выключателя on/off. Изначально все лампочки выключены. По очереди бегут 100 гномиков. 1-й включает каждую лампочку. 2-й выключает каждую вторую лампочку. 3-й - меняет нажимает н каждый третий выключатель. ... Что будет когда все 100 гномиков пробегут?
*** В комнате 3 выключенные лампочки: 1л, 2л, 3л. Снаружи - три выключателя: 1в, 2в, 3в. Как, выйдя из комнаты один раз, узнать какой выключатель соответствует какой лампочке?
По нему не надо восстанавливать всю последовательность. Надо - недостающий элемент. Для этого одного разряда вполне достаточно. Младшего, естественно, AKA остатка от деления на 3.
ну йолы палы, ты чё, не понимаешь решение задачи, которую сам задал? я не знаю уж, куда подробнее разжёвывать. rolling over checksum, нужной разрядности. в нашем случае - один троичный разряд. каждый гномик, слыша названную шапку, вычитает её из checksum. для вычисления своей шапки нужно вычесть checksum впереди себя из предыдущей (которая включает твою шапку). дошло теперь?
последний называет сумму. остальные называют шапку, вычисляемую из суммы. это абсолютно точная формулировка и сказал я это в самом первом комменте. вы, наверное, гуманитарий и не привыкли к точным формулировкам?
не так. гномик вычисляет свою шапку как разность двух чексумм - включающую его шапку и не включающую. чексумма, включающая его шапку равна чексумме, названной первым гномиком минус сумма всех названных шапок.
отстаньте от меня с такими примитивными вопросами, ради бога :-)
Гм, продолжение допроса с пристрастием. Оговаривается ли в условии:
1. где я сначала нахожусь? (подозреваю, что наивные авторы имели в виду именно это)
2. есть ли персонажи помимо меня? (по умолчанию наивный интервьюер, скорее всего, полагает, что я один, а я бы полагал, что интервьюер в наличии - он ведь вот, передо мной сидит)
3. управляет ли каждый выключатель ровной одной лампочкой, причем из находящихся в комнате, и различными ли лампочками управляют выключатели?
П.1 отчетливо не относится к условиям типа "планета - Земля". Это надо оговаривать. Равно как и ответ на предыдущий вопрос. Два других пункта спрашивались, понятно, по правилу тринадцатого удара.
Поскольку мне малость надоело вытягивать "подразумеваемые" ограничения (интервьюер уже узнал бы о себе много нового, но мало лестного), то постановщику задачи предлагается правильно угадать еще одно недостающее ограничение либо честно признаться, что да, имелся в виду именно этот (третий уже) вариант решения.
Я - не интервьюер, вам ничего не должна, и никакого решения не вижу. Впрочем, мне оно и не нужно - я его знаю. Мне кажется, вы со мной говорите не подобающе; по-снобски как-то; я вас не знаю, и никаких основаной к тому вам не давала. Задачки я кинула авве, полагая что он их знает (что так и есть) и чтобы напомнить славные старые технионовские дни. А вас я ни о чём не спрашивала. Смените, пожалуйста, тон.
no subject
Date: 2006-01-10 05:04 pm (UTC)no subject
Date: 2006-01-10 05:08 pm (UTC)no subject
Date: 2006-01-10 05:15 pm (UTC)Это скорее аналог бумажной почты и газет.
no subject
Date: 2006-01-10 05:18 pm (UTC)no subject
Date: 2006-01-10 05:30 pm (UTC)no subject
Date: 2006-01-10 06:38 pm (UTC)no subject
Date: 2006-01-10 06:15 pm (UTC)no subject
Date: 2006-01-10 05:20 pm (UTC)Раньше лежала в электронном виде на русском языке на lib.aldebaran.ru, но сейчас ее почему-то убрали. Оригинала на английском не искал.
no subject
Date: 2006-01-10 08:15 pm (UTC)no subject
Date: 2006-01-10 05:27 pm (UTC)найти английское слово произведения букв которого максимально близко к миллиону
no subject
Date: 2006-01-10 05:41 pm (UTC)no subject
Date: 2006-01-10 06:20 pm (UTC)no subject
Date: 2006-01-10 07:15 pm (UTC)no subject
Date: 2006-01-10 08:37 pm (UTC)no subject
Date: 2006-01-10 06:07 pm (UTC)no subject
Date: 2006-01-10 06:46 pm (UTC)Мои пять копеек
Date: 2006-01-10 05:45 pm (UTC)Please don't use CRT, STL, etc. library functions.
1. Implement the C runtime library function strstr. strstr returns a pointer to the first occurrence of strSearch in string, or NULL if strSearch does not appear in string. If strSearch points to a string of zero length, the function returns string. The search does not include terminating null characters.
const char *strstr(const char *string, const char *strSearch)
{
// Insert your implementation here
}
2. Implement the following function for sorting a linked list of integers in ascending order. The function takes a pointer to the head of the list, and returns a pointer to the head of the sorted list. Your function should use only a constant amount of memory. It's prohibited to change the value of ListNode, instead ListNodes must be rearranged.
struct ListNode
{
int value() { return _value; }
ListNode *pNext;
private:
int _value;
};
ListNode* SortList(ListNode *pHead)
{
// Insert your implementation here
}
3. Implement the following function, FindSortedArrayRotation, which takes as its input an array of unique integers that has been sorted in ascending order, then rotated by an unknown amount X where 0 <= X <= (arrayLength - 1). An array rotation by amount X moves every element array[i] to array[(i + X) % arrayLength]. FindSortedArrayRotation discovers and returns X by examining the array. You may be able to do this in less than linear time.
int FindSortedArrayRotation(int *array, int arrayLength)
{
// Insert your implementation here
}
Re: Мои пять копеек
Date: 2007-08-29 12:37 am (UTC)Did you get an answer to your question?
no subject
Date: 2006-01-10 06:29 pm (UTC)no subject
Date: 2006-01-10 07:10 pm (UTC)***
В ряд построены 100 електрических лампочек с пуговкой выключателя on/off.
Изначально все лампочки выключены.
По очереди бегут 100 гномиков.
1-й включает каждую лампочку.
2-й выключает каждую вторую лампочку.
3-й - меняет нажимает н каждый третий выключатель.
...
Что будет когда все 100 гномиков пробегут?
***
В комнате 3 выключенные лампочки: 1л, 2л, 3л.
Снаружи - три выключателя: 1в, 2в, 3в.
Как, выйдя из комнаты один раз, узнать какой
выключатель соответствует какой лампочке?
no subject
Date: 2006-01-10 07:19 pm (UTC)no subject
Date: 2006-01-10 08:31 pm (UTC)no subject
Date: 2006-01-10 08:31 pm (UTC)no subject
Date: 2006-01-10 08:32 pm (UTC)no subject
Date: 2006-01-10 09:40 pm (UTC)троичная система, каждому цвету своё значение.
checksum = сумме всех шапок.
no subject
Date: 2006-01-11 08:50 am (UTC)no subject
Date: 2006-01-11 01:31 pm (UTC)no subject
Date: 2006-01-11 01:54 pm (UTC)no subject
Date: 2006-01-11 02:27 pm (UTC)отстаньте от меня с такими примитивными вопросами, ради бога :-)
no subject
Date: 2006-01-11 03:09 pm (UTC)сумма шапок до себя и шапка после никак не помогут вычислить свою шапку.
no subject
Date: 2006-01-12 07:48 am (UTC)no subject
Date: 2006-01-12 03:34 pm (UTC)no subject
Date: 2006-01-12 09:45 pm (UTC)no subject
Date: 2006-01-13 06:17 am (UTC)1. где я сначала нахожусь? (подозреваю, что наивные авторы имели в виду именно это)
2. есть ли персонажи помимо меня? (по умолчанию наивный интервьюер, скорее всего, полагает, что я один, а я бы полагал, что интервьюер в наличии - он ведь вот, передо мной сидит)
3. управляет ли каждый выключатель ровной одной лампочкой, причем из находящихся в комнате, и различными ли лампочками управляют выключатели?
no subject
Date: 2006-01-13 07:27 am (UTC)(ну типа, температура не -1000, планета - Земля и т.п.)
В том же ключе:
1. В комнате. Потом вышел. Делал что хотел с выключателями.
Вернулся. Ответил.
2. Нет. (Никого, даже самого наивного интервьюера). Адын, совсем адын.
3. Да, однозначное соответствие выключателей лампочкам есть.
Иначе его не просили бы найти. Никаких наёбок в задаче нет.
no subject
Date: 2006-01-13 10:03 am (UTC)Поскольку мне малость надоело вытягивать "подразумеваемые" ограничения (интервьюер уже узнал бы о себе много нового, но мало лестного), то постановщику задачи предлагается правильно угадать еще одно недостающее ограничение либо честно признаться, что да, имелся в виду именно этот (третий уже) вариант решения.
no subject
Date: 2006-01-13 04:26 pm (UTC)Впрочем, мне оно и не нужно - я его знаю.
Мне кажется, вы со мной говорите не подобающе; по-снобски как-то;
я вас не знаю, и никаких основаной к тому вам не давала.
Задачки я кинула авве, полагая что он их знает (что так и есть) и
чтобы напомнить славные старые технионовские дни.
А вас я ни о чём не спрашивала. Смените, пожалуйста, тон.