Google Recruiter

avitya
Уже с Приветом
Posts: 3836
Joined: 13 Sep 2007 10:06

Re: Google Recruiter

Post by avitya »

Вот хоть убей не нравится мне этот код :). Нету в нём души, что ли?
И зачем вы делаете do while? Это сильно уменьшает читабельность.
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Google Recruiter

Post by Alexander Troyansky »

АццкоМото wrote:
Alexander Troyansky wrote:
АццкоМото wrote:Мамочки... зачем же столько букв-то???
так что ли трудно проверить на переполнение
if (j=10*i+c<i) return achtung; else i=j;
и знак менять уже за циклом, а не проверять на него на каждой итерации

так написать действительно очень-очень-очень сложно. потому что это чудовищно
я так понял achtung срабатывает на отрицательных числах :-)
Он срабатывает на переполнении

ЗЫ. И вот это
if (!*str)
return false;
не несет вообще никакого смысла
а, увидел, что отрицательные числа вы всё-таки тоже решили включить. Так получается:

Code: Select all

bool str2int(const char * str, int & res)
{
	if (!str || !*str)
		return false;
	res = 0;
	bool bNeg = *str == '-';

	if (bNeg)
		str++;

	int res0;
	do
	{
		char c = *str - '0';
		if (c >= 0 && c <= 9)
		{	
			if (bNeg) {
				res0 = -res;
				res	= -10 * res0 - c;
				if (res > res0) 
					return false;

			} else {
				res0 = res;
				res	= 10 * res0 + c;
				if (res < res0) 
					return false;
			}
		}
		else
			return false;
	}
	while(*++str != '\0');

	return true;
}

?
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Google Recruiter

Post by Alexander Troyansky »

Интеррапт wrote:
АццкоМото wrote:
Интеррапт wrote: Ну это как бы проверка на пустую строку. Так что в принципе смысл в этом есть. Я лично все-равно люблю более читаемые конструкции типа if(*str == '\0'), но это уже дело вкуса.
Это проверка на то, не кончилась ли строка сразу после минуса. но поскольку дальше идет цикл с проверкой, что символ под указателем - от '0' до '9', ее можно безболезненно выкинуть
Это да. Т.е. мы как бы дойдем до проверки '\0' - '0'. Не люблю я такое, хоть и вполне легальная конструкция.

Вообщем, Александр, если вы эту задачу решили за 10 минут, давайте зачетку :mrgreen:
Не, низачот:
- превысил время;
- лоханулся с переполнением;
- использовал компилятор;
- лишние инструкции;
- вот do-while использовал;

В свое оправдание могу сказать, что больше ничей работающий код не видел. Пока. Ну были ленивые понукания, типа "Чудовищно! Громоздко! Да я, да я, да за пять-десять минут!"

А так чтобы выйти, не спужавшись, вот только crypto5, ну и я :oops:
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
xtigr
Уже с Приветом
Posts: 617
Joined: 23 Sep 2005 06:56
Location: SFBA

Re: Google Recruiter

Post by xtigr »

ну и зачем требовать такую детализацию во время интервью? Мне лично достаточно, если кандидат напишет пару строк кода, чтоб был понятен алгоритм, и чтоб упомянул про все проверки, можно просто словами.
Что лично почерпнет интервьювер из такой детально решеной задачки кроме того что кандидат может написать атои?
ведь на все остальное времени не останется.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Google Recruiter

Post by crypto5 »

xtigr wrote:ну и зачем требовать такую детализацию во время интервью? Мне лично достаточно, если кандидат напишет пару строк кода, чтоб был понятен алгоритм, и чтоб упомянул про все проверки, можно просто словами.
Что лично почерпнет интервьювер из такой детально решеной задачки кроме того что кандидат может написать атои?
ведь на все остальное времени не останется.
может как раз ищутся фронтендщики разрабатывающие УИ, и там наверное очень важное качество предвидеть все ошибки и злые намерения пользователя и вычислить все граничные условия.
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Google Recruiter

Post by Интеррапт »

xtigr wrote:ну и зачем требовать такую детализацию во время интервью? Мне лично достаточно, если кандидат напишет пару строк кода, чтоб был понятен алгоритм, и чтоб упомянул про все проверки, можно просто словами.
Что лично почерпнет интервьювер из такой детально решеной задачки кроме того что кандидат может написать атои?
ведь на все остальное времени не останется.
Во-во. Что собственно я тоже упомянул на предидущих страницах. Достаточно увидеть, что кандидат умеет писать элементарный код ну и переходим к более интересным задачам.
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Google Recruiter

Post by АццкоМото »

Alexander Troyansky wrote:а, увидел, что отрицательные числа вы всё-таки тоже решили включить. Так получается:
нет, не так, так еще хуже, хотя казалось бы, возможно ли это
Мат на форуме запрещен, блдж!
User avatar
Medium-rare
Уже с Приветом
Posts: 9195
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Google Recruiter

Post by Medium-rare »

xtigr wrote:ну и зачем требовать такую детализацию во время интервью? Мне лично достаточно, если кандидат напишет пару строк кода, чтоб был понятен алгоритм, и чтоб упомянул про все проверки, можно просто словами.
Что лично почерпнет интервьювер из такой детально решеной задачки кроме того что кандидат может написать атои?
ведь на все остальное времени не останется.
Последний раз в MS так и спрашивали (при том, трое разных), а как бы вы реализовали, ну, хорошо, кодируйте, ну ладно, ясно... дальше. Но затормозив на конкретном алгоритме, допрашиваемый был подвергнут дополнительным вопросам. :|
... and even then it's rare that you'll be going there...
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Google Recruiter

Post by Alexander Troyansky »

АццкоМото wrote:
Alexander Troyansky wrote:а, увидел, что отрицательные числа вы всё-таки тоже решили включить. Так получается:
нет, не так, так еще хуже, хотя казалось бы, возможно ли это
ну вот я о чем и говорил: "Ужасно! Чудовищно! Так нельзя!". Ну я не умею угадывать мысли, поэтому взял на себя труд попытаться угадать, что конкретно вы имели в виду. Ну не хотите, как хотите. Это вроде лишь дело 5 минут, но мы тут с вами бодаемся уже который час.
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Google Recruiter

Post by Alexander Troyansky »

xtigr wrote:ну и зачем требовать такую детализацию во время интервью? Мне лично достаточно, если кандидат напишет пару строк кода, чтоб был понятен алгоритм, и чтоб упомянул про все проверки, можно просто словами.
Что лично почерпнет интервьювер из такой детально решеной задачки кроме того что кандидат может написать атои?
ведь на все остальное времени не останется.
это была позиция тестера. Последнее интервью. Как-то получилось, что все собеседники уделяли минут 10-20 на общие вопросы: чего и как делал; почему Гугл... Остальное время на задачи всякие разные; по всей видимости, собеседующий хотел знать, как бы я работал в условиях недостатка данных/спецификаций типа "задавай вопросы". Простым упомянанием проверок я не отделался -- потребовалось кодирование на доске. Погорел классическим образом: упустил проверку граничных условий. Помню, что собеседователь очень распереживался.
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
xtigr
Уже с Приветом
Posts: 617
Joined: 23 Sep 2005 06:56
Location: SFBA

Re: Google Recruiter

Post by xtigr »

Alexander Troyansky wrote:
xtigr wrote:ну и зачем требовать такую детализацию во время интервью? Мне лично достаточно, если кандидат напишет пару строк кода, чтоб был понятен алгоритм, и чтоб упомянул про все проверки, можно просто словами.
Что лично почерпнет интервьювер из такой детально решеной задачки кроме того что кандидат может написать атои?
ведь на все остальное времени не останется.
это была позиция тестера. Последнее интервью. Как-то получилось, что все собеседники уделяли минут 10-20 на общие вопросы: чего и как делал; почему Гугл... Остальное время на задачи всякие разные; по всей видимости, собеседующий хотел знать, как бы я работал в условиях недостатка данных/спецификаций типа "задавай вопросы". Простым упомянанием проверок я не отделался -- потребовалось кодирование на доске. Погорел классическим образом: упустил проверку граничных условий. Помню, что собеседователь очень распереживался.
В этом случае еще куда ни шло, т.е. все остальное проверено, теперь проверяется внимание к деталям.
Однако срезать на том что забыли проверять граничные условия как то черезчур. Этого как раз я и не понимаю и не принимаю. Особенно если человек с опытом ( не знаю как у вас).
Однако Гугл и МСФТ знамениты такими требованиями, так как считают что лучше срезать много хороших кандидатов чем взять одного плохого.
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Google Recruiter

Post by АццкоМото »

Alexander Troyansky wrote:Так получается:
То, что я имел в виду:

Code: Select all

bool str2int(const char * str, int & res)
{
   int tmp;
   if (!str || !*str) return false;
   bool bNeg = *str == '-';

   if (bNeg) str++;

   res = -(*str++ - '0');
   if (res > 0 || res < -9) return false;

   for(;*str;str++) {
      char c = *str - '0';
      if (c >= 0 && c <= 9) {
		 if ((tmp = 10*res-c) > res) return false;
		 else  res = tmp;
      }
      else return false;
   }

   if (!bNeg)
      if (res==MIN_INT) return false;
	  else res = -res;

   return true;
}
тоже не ахти, но хотя бы проверок в цикле 2 вместо 6 (и 4х исполняемых при корректных данных)
Мат на форуме запрещен, блдж!
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Google Recruiter

Post by Alexander Troyansky »

АццкоМото wrote:
Alexander Troyansky wrote:Так получается:
То, что я имел в виду:

Code: Select all

bool str2int(const char * str, int & res)
{
   int tmp;
   if (!str || !*str) return false;
   bool bNeg = *str == '-';

   if (bNeg) str++;

   res = -(*str++ - '0');
   if (res > 0 || res < -9) return false;

   for(;*str;str++) {
      char c = *str - '0';
      if (c >= 0 && c <= 9) {
		 if ((tmp = 10*res-c) > res) return false;
		 else  res = tmp;
      }
      else return false;
   }

   if (!bNeg)
      if (res==MIN_INT) return false;
	  else res = -res;

   return true;
}
тоже не ахти, но хотя бы проверок в цикле 2 вместо 6 (и 4х исполняемых при корректных данных)
Спасибо, так значительно лучше. Я только придерживаюсь своей изначальной точки зрения, что такая функция преобразования с учетом граничных условий не решается за 5-10 минут, если, конечно, человек не готовился заранее.
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Google Recruiter

Post by Alexander Troyansky »

xtigr wrote:
Alexander Troyansky wrote:
xtigr wrote:ну и зачем требовать такую детализацию во время интервью? Мне лично достаточно, если кандидат напишет пару строк кода, чтоб был понятен алгоритм, и чтоб упомянул про все проверки, можно просто словами.
Что лично почерпнет интервьювер из такой детально решеной задачки кроме того что кандидат может написать атои?
ведь на все остальное времени не останется.
это была позиция тестера. Последнее интервью. Как-то получилось, что все собеседники уделяли минут 10-20 на общие вопросы: чего и как делал; почему Гугл... Остальное время на задачи всякие разные; по всей видимости, собеседующий хотел знать, как бы я работал в условиях недостатка данных/спецификаций типа "задавай вопросы". Простым упомянанием проверок я не отделался -- потребовалось кодирование на доске. Погорел классическим образом: упустил проверку граничных условий. Помню, что собеседователь очень распереживался.
В этом случае еще куда ни шло, т.е. все остальное проверено, теперь проверяется внимание к деталям.
Однако срезать на том что забыли проверять граничные условия как то черезчур. Этого как раз я и не понимаю и не принимаю. Особенно если человек с опытом ( не знаю как у вас).
Однако Гугл и МСФТ знамениты такими требованиями, так как считают что лучше срезать много хороших кандидатов чем взять одного плохого.
Гм, внимание к деталям проверялось на каждом из собеседований в тот день, насколько я помню. На самом деле, я не считаю, что Гугл сильно зверел. То что глупо посыпался на граничных условиях и заранее не выяснил таблицу входов/выходов, из-за чего последнее интервью сам себе сильно изгадил -- это я так сам решил про себя. Почему самом деле не прошел - не знаю. Это было мое первое интервью в США, так что можно сказать первый блин комом.
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Google Recruiter

Post by Ljolja »

Интеррапт wrote:
Ljolja wrote:А если число в ехпоненциальной орме?
atoi эксп числа не обрабатывает. Когда кандидату задается вопрос, то в принципе такие вещи идут в постановке задачи - преобразуй ка ты мне, голубчик, обычную целочисельную строку с поддержкой +/- в число. Все, увидел, что чувак умеет код писать - поехали дальше, к более интересным задачам.
вообше-то изначально задача формулировалась как:"преобразовать строку в целое число". На какую позицию было интервью - не указывалось. Если ко мне придет человек интервюироваться на архитекта и в данном случае начнет писать атои, меня удар хватит. Я бы скорее ожидала что человек раскажит какие строки он может представить на входе. Если строка представляет собой целое число, нужно вызвать атои. Если число не целое, записано в десятичной форме то ...
Если число в словах (да еше неизвестно какого языка :mrgreen: ), вот тут придется повозиться.
Иногда можно начинать с интересных задач, постепенно спускаясь до уровня интервюироемого, правда есть риск, что он сбежит раньше, подумает что над ним издеваются
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)

Return to “Работа и Карьера в IT”