Прeскрин с написанием кода, github, и upload into CI.

User avatar
Леонид Ильич Брежнев
Уже с Приветом
Posts: 8632
Joined: 22 Mar 2011 01:40

Re: Прeскрин с написанием кода, github, и upload into CI.

Post by Леонид Ильич Брежнев »

Мой студент только что прислал, " ... рекруитер из консалтинговой компании договорился о phone screen с другой группой из той же компании (комментарий ЛИБ: это не та группа, что прислала исходное задание на code sample ). Сегодня в 11:30 am. Никто не позвонил. Написал рекруитеру, он не ответил, но где-то в час прислал емайл с вопросом "ну как". Ответил ему, что как я писал в прошлом емайле, никто так и не позвонил. Теперь и рекруитер пропал ... ".
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Прeскрин с написанием кода, github, и upload into CI.

Post by Alexander Troyansky »

nightmare2 wrote:
Alexander Troyansky wrote:...Которым из них надо отвечать на так называемый "фильтр"?

Code: Select all

int x;
int.TryParse("123", out x);
"Все уже украдено до нас."
Обычно просят реализовать этот вот самый TryParse. Причем даже ваше решение тоже ведь зависит от контекста, пральна? Например, в том же С++ TryParse нет. Хотя да, при "фильтровании" надо, я так полагаю, задаватьвопросы, чтоб уточнить чего же именно хочет спрашивающий. А так да, если С# и можно воспользоваться уже готовыми функциями преобразования, то ваш ответ будет в самый раз.
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
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Прeскрин с написанием кода, github, и upload into CI.

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

Alexander Troyansky wrote:
Update: Нашёл. Решение "в три строчки":

Code: Select all

char c[];
int i = 0;
while(c) { i *= 10; i += c -'0'; c++;}

Решение правильное:

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;
}

Которым из них надо отвечать на так называемый "фильтр"?

конечно трехстрочечное. длинное-то с ошибкой
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Прeскрин с написанием кода, github, и upload into CI.

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

и, кстати, вообще идиотское. там не то, что ошибка, там весь полет мысли указывает на карьеру джанитора
я устану тыкать в каждую строчку
Мат на форуме запрещен, блдж!
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Прeскрин с написанием кода, github, и upload into CI.

Post by nightmare2 »

Alexander Troyansky wrote:Обычно просят реализовать этот вот самый TryParse. Причем даже ваше решение тоже ведь зависит от контекста, пральна? Например, в том же С++ TryParse нет. Хотя да, при "фильтровании" надо, я так полагаю, задаватьвопросы, чтоб уточнить чего же именно хочет спрашивающий. А так да, если С# и можно воспользоваться уже готовыми функциями преобразования, то ваш ответ будет в самый раз.
Ну есть же разница между теми, кто базовые алгоритмы пишет и теми, кто их применяет в прикладных программах.

Если подумать немного, но наверное что-то напишу.
Кодировки цифр идут подряд.
Взяв за основу '0'...

Code: Select all

public static bool MyTryParse(string strNum, out int result)
{
     result = 0;
     int m = 1;

     for (int i = strNum.Length - 1; i >= 0; i--)
     {
         if (strNum[i] < '0' || strNum[i] > '9')
         {
             result = 0;
             return false;
         }
         else
         {
             result += (int)(strNum[i] - '0') * m;
         }

         m *= 10;
    }

    return true;
}
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Прeскрин с написанием кода, github, и upload into CI.

Post by Alexander Troyansky »

АццкоМото wrote:и, кстати, вообще идиотское. там не то, что ошибка, там весь полет мысли указывает на карьеру джанитора
я устану тыкать в каждую строчку
Гм, какая неудобная ситуация возникла...
Вообще-то это ваш код...
Который вы вывели из первого, после того как поняли, что первый не работает
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: Прeскрин с написанием кода, github, и upload into CI.

Post by Alexander Troyansky »

nightmare2 wrote:
Alexander Troyansky wrote:Обычно просят реализовать этот вот самый TryParse. Причем даже ваше решение тоже ведь зависит от контекста, пральна? Например, в том же С++ TryParse нет. Хотя да, при "фильтровании" надо, я так полагаю, задаватьвопросы, чтоб уточнить чего же именно хочет спрашивающий. А так да, если С# и можно воспользоваться уже готовыми функциями преобразования, то ваш ответ будет в самый раз.
Ну есть же разница между теми, кто базовые алгоритмы пишет и теми, кто их применяет в прикладных программах.

Если подумать немного, но наверное что-то напишу.
Кодировки цифр идут подряд.
Взяв за основу '0'...

Code: Select all

public static bool MyTryParse(string strNum, out int result)
{
     result = 0;
     int m = 1;

     for (int i = strNum.Length - 1; i >= 0; i--)
     {
         if (strNum[i] < '0' || strNum[i] > '9')
         {
             result = 0;
             return false;
         }
         else
         {
             result += (int)(strNum[i] - '0') * m;
         }

         m *= 10;
    }

    return true;
}
гм. Да, задача не устаревает. На входе "-1". Что будет на выходе?
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
berlagaB
Уже с Приветом
Posts: 344
Joined: 03 Dec 2014 23:49

Re: Прeскрин с написанием кода, github, и upload into CI.

Post by berlagaB »

Alexander Troyansky wrote:
АццкоМото wrote:и, кстати, вообще идиотское. там не то, что ошибка, там весь полет мысли указывает на карьеру джанитора
я устану тыкать в каждую строчку
Гм, какая неудобная ситуация возникла...
Вообще-то это ваш код...
Который вы вывели из первого, после того как поняли, что первый не работает
:lol: :lol: :lol:

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

Re: Прeскрин с написанием кода, github, и upload into CI.

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

Alexander Troyansky wrote:
АццкоМото wrote:и, кстати, вообще идиотское. там не то, что ошибка, там весь полет мысли указывает на карьеру джанитора
я устану тыкать в каждую строчку
Гм, какая неудобная ситуация возникла...
Вообще-то это ваш код...
Который вы вывели из первого, после того как поняли, что первый не работает
ситуация неудобная, да
во-первых, я зря щитбрикал по поводу "ошибка на ошибке" - признаю
во-вторых - код не может быть моим. я смутно припоминаю разговор на эту тему (почему считаем в негативных числах) сто лет назад, но мопед стопудово не мой
Мат на форуме запрещен, блдж!
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

Re: Прeскрин с написанием кода, github, и upload into CI.

Post by nightmare2 »

Alexander Troyansky wrote:гм. Да, задача не устаревает. На входе "-1". Что будет на выходе?
Да тут много чего не устраивает.
Что будет если строка слишком длинная для int?
Что делать если встретилась точка?
Что делать с пробелами или запятыми (разделителями разрядов)?
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Прeскрин с написанием кода, github, и upload into CI.

Post by Alexander Troyansky »

АццкоМото wrote:
Alexander Troyansky wrote:
АццкоМото wrote:и, кстати, вообще идиотское. там не то, что ошибка, там весь полет мысли указывает на карьеру джанитора
я устану тыкать в каждую строчку
Гм, какая неудобная ситуация возникла...
Вообще-то это ваш код...
Который вы вывели из первого, после того как поняли, что первый не работает
ситуация неудобная, да
во-первых, я зря щитбрикал по поводу "ошибка на ошибке" - признаю
во-вторых - код не может быть моим. я смутно припоминаю разговор на эту тему (почему считаем в негативных числах) сто лет назад, но мопед стопудово не мой
Да не надо стесняться. Мопед-таки ваш, это раз. Он таки работает и получился самый адекватный из немногих тогда предложенных, это два. Спор тогда был, что за 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
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Прeскрин с написанием кода, github, и upload into CI.

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

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

Re: Прeскрин с написанием кода, github, и upload into CI.

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

так, стоп

возможно это и "мой" код. если я основывался на том, что вы, Alexander Troyansky, откомментили так: Ну если никому больше неинтересно, то вот мой вариант -- мне кажется, что решить за 5-10 минут трудно.
но это изменение чужого кода по какому-то признаку, от которого я тогда щитбрикал. очевидно, что сегодня я вижу чужой стиль (код за свой не признаю)
Мат на форуме запрещен, блдж!
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Прeскрин с написанием кода, github, и upload into CI.

Post by Alexander Troyansky »

АццкоМото wrote:так, стоп

возможно это и "мой" код. если я основывался на том, что вы, Alexander Troyansky, откомментили так: Ну если никому больше неинтересно, то вот мой вариант -- мне кажется, что решить за 5-10 минут трудно.
но это изменение чужого кода по какому-то признаку, от которого я тогда щитбрикал. очевидно, что сегодня я вижу чужой стиль (код за свой не признаю)
Я бы сказал, что тогда с нетерпеньем жду по-всамделишному правильный код от вас лично, написанный если не за 10, то пусть хоть за 30 минут, раз вы 2.5 года назад схитрили, но - нет, не буду, ибо рискую быть посланным :)

Но хотел бы отметить, что характерные отмазки на интервью типа "я изложил идею и написал пару строчек, а вы по ходу добавили новые требования" - они не больше, чем отмазки, по-моему. Казалось бы... какие могут "новые" требования? Могут целые числа быть отрицательными? Могут. Есть пределы у целочисленных типов, которые надо проверять? Есть. Могут быть ошибочные значения ввода? Могут. Получается никаких "новых" требований нет. А если энторвьюруемый об этом не помнит или не знает, то такой же он "в теме"?

Помните подход Joe Spolsky о найме "Smart and Gets Things Done"? Не буду утверждать, что он единственно верный и бесспорный, но весьма неплох. Так вот, "набросать идею" - это показать, какой я умный. А развить эту идею и напейсать функцию - это и есть "gets things done". Хотя вполне допускаю, что порой бывает иногда нанимают исключительно по первому признаку. Это как повезёт, но я бы не считал это за норму и не шитбрикал на ровном месте от чуть более детальных энторвью.

То, что написал наш дорогой Леонид Ильич, открыв эту тему, - просто не совсем удачная попытка реализации подхода Спольского.
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
АццкоМото
Уже с Приветом
Posts: 15276
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Прeскрин с написанием кода, github, и upload into CI.

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

Alexander Troyansky wrote:
АццкоМото wrote:так, стоп

возможно это и "мой" код. если я основывался на том, что вы, Alexander Troyansky, откомментили так: Ну если никому больше неинтересно, то вот мой вариант -- мне кажется, что решить за 5-10 минут трудно.
но это изменение чужого кода по какому-то признаку, от которого я тогда щитбрикал. очевидно, что сегодня я вижу чужой стиль (код за свой не признаю)
Я бы сказал, что тогда с нетерпеньем жду по-всамделишному правильный код от вас лично, написанный если не за 10, то пусть хоть за 30 минут, раз вы 2.5 года назад схитрили, но - нет, не буду, ибо рискую быть посланным :).
мы вроде выяснили, что код это таки ваш, в котором я исправил очень явные косяки, а вовсе не хитрил. с такой поправкой ваша просьба теряет смысл
Alexander Troyansky wrote:Но хотел бы отметить, что характерные отмазки на интервью типа "я изложил идею и написал пару строчек, а вы по ходу добавили новые требования" - они не больше, чем отмазки, по-моему. Казалось бы... какие могут "новые" требования? Могут целые числа быть отрицательными? Могут. Есть пределы у целочисленных типов, которые надо проверять? Есть. Могут быть ошибочные значения ввода? Могут. Получается никаких "новых" требований нет. А если энторвьюруемый об этом не помнит или не знает, то такой же он "в теме"?
не нужно смешивать два типа интервью с кодированием
в одном случае цель - отсеять теоретика, который говорит убедительно, а на деле не может связать две строчки
во втором - нужно проверить, что человек не только знает базовые идеи, но и может "идти до конца"
что самое смешное - первое скорее применимо к опытным перцам, а второе - наоборот, хотя кажется, что это нелогично

что до интервьюироемого, он в стрессе. с утра. он еще не зашел в здание будущей работы, он только встал с постели и почесал яйца - и обнаружил, что они трясутся. рузумеется к моменту написания кода он может "не помнить", что целые числа бывают отрицательными. начать нужно с простого, подбодрить и если нужно - дойти до тонкостей. уверяю вас, дебил, сколько его не подбадривай, не дойдет. умный - скорей всего докажет свой ум раньше, чем придется копать
Alexander Troyansky wrote:Помните подход Joe Spolsky о найме "Smart and Gets Things Done"? Не буду утверждать, что он единственно верный и бесспорный, но весьма неплох. Так вот, "набросать идею" - это показать, какой я умный. А развить эту идею и напейсать функцию - это и есть "gets things done". Хотя вполне допускаю, что порой бывает иногда нанимают исключительно по первому признаку. Это как повезёт, но я бы не считал это за норму и не шитбрикал на ровном месте от чуть более детальных энторвью.

То, что написал наш дорогой Леонид Ильич, открыв эту тему, - просто не совсем удачная попытка реализации подхода Спольского.
честно говоря, помню настолько плохо, что проще сказать - не помню
с ваших слов идея кажется понятной, но вот засада. оно вам надо? ну представьте на секунду, то это я вас интервьюирую. ведь вам на середине такого вопроса захочется послать меня в пешее. и мне вас - если роли поменяются
Мат на форуме запрещен, блдж!

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