Архитектор из дома

User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Архитектор из дома

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

Леонид Ильич Брежнев wrote:
Сабина wrote:
olis wrote: Я видимо тоже отчасти виноват. Попросил написать функцию переворачивания сторки чтобы просто понять как человек логически мыслит и пишет элементарный код.
Мне вот например жутко интересно какого же кода то он от нее ждал:)?

Вот от меня какой то выпускник МГУ требовал с буфером в один байт ( или даже бит не помню :lol: ) -.это интересно что за зверь такой :shy: ?

Code: Select all

void* reverseString (char* str)
{
   int len = strlen(str);
   char* end = str + len -1;
   char t;
   for (int i = 0; i < len/2 -1; i++)
   {
       t = *str;
       *str++ = end;
       *end-- = t;
   }
}
Какая-то унылая функция у Партии. Какие-то деления на 2, вместо того, чтобы сравнивать указатели, какой-то void* который функция не возвращает.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Архитектор из дома

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

Сабина wrote: Вот от меня какой то выпускник МГУ требовал с буфером в один байт ( или даже бит не помню :lol: ) -.это интересно что за зверь такой :shy: ?
А то может мне надо было просто отпросится в туалет и разрыдаться вдрызг, а я не поняла что хочут
Можно вообще без буфера это сделать (XOR swap). А вообще неистребима функция переворачивания строки на Привете, сколько себя здесь помню, так или иначе реверс строки всплывал и даже народ усердно постил решения этой важной проблемы.
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Архитектор из дома

Post by Ljolja »

Интеррапт wrote: то всегда можно посмотреть, документируется ли код в самих исходниках. При нормально задокументированных исходниках - всегда можно сгенерить документацию.
и часто документируется? Мне раньше казалось, что програмист отличается от не програмиста тем, что 1й пишет код для людей, 2й - для машин. Теперь мне так не кажется. :roll:
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
User avatar
Леонид Ильич Брежнев
Уже с Приветом
Posts: 8628
Joined: 22 Mar 2011 01:40

Re: Архитектор из дома

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

Не, void*, это неаккуратно удаленный char*, к которoму добавили void.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Архитектор из дома

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

Ljolja wrote:
Интеррапт wrote: то всегда можно посмотреть, документируется ли код в самих исходниках. При нормально задокументированных исходниках - всегда можно сгенерить документацию.
и часто документируется? Мне раньше казалось, что програмист отличается от не програмиста тем, что 1й пишет код для людей, 2й - для машин. Теперь мне так не кажется. :roll:
Обязательно и всегда документируется.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Архитектор из дома

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

Леонид Ильич Брежнев wrote:Не, void*, это неаккуратно удаленный char*, к которoму добавили void.
А return где? :)
А... понял о чем ты.
User avatar
Леонид Ильич Брежнев
Уже с Приветом
Posts: 8628
Joined: 22 Mar 2011 01:40

Re: Архитектор из дома

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

Интеррапт wrote:
Леонид Ильич Брежнев wrote:Не, void*, это неаккуратно удаленный char*, к которoму добавили void.
А return где? :)
А... понял о чем ты.
Kакой у войда return?
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Архитектор из дома

Post by stenking »

Лол. А до такого кто-то додумался?:)

Code: Select all

for ( i= 0, s = s + s, length= s.length / 2; i > length ; i++ )
{
  s[i] = s[length-i]
  s[length-i] = null;
}
Бога нет.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Архитектор из дома

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

Леонид Ильич Брежнев wrote:
Интеррапт wrote:
Леонид Ильич Брежнев wrote:Не, void*, это неаккуратно удаленный char*, к которoму добавили void.
А return где? :)
А... понял о чем ты.
Kакой у войда return?
Ну так ты так написал про неаккуратно удаленные и т.п., что не понял, что ты имел в виду. Проехали.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Архитектор из дома

Post by Сабина »

stenking wrote: Я джаву не знаю вообще-то. По моему там поинтеров как раз нет и адресса менять не получится, разве нет? По моему как раз код должен быть таким, простой и понятный. Без всяких рекурсий и фантазий на тему а что если строчка имеет биллион символов а памяти нет и не будет.. Но я уверен что olis хотел именно такой простой код выше. Это же простой тест на "свой-чужой".

Так вообще есть функция StringBuffer.reverse . Даже в Джаваскрипте это oneliner
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Архитектор из дома

Post by Ljolja »

Сабина wrote: А то может мне надо было просто отпросится в туалет и разрыдаться вдрызг, а я не поняла что хочут
не вылезти чере окно и плотно закрыть его за собой, тогда интервьюер забудет о так и не обрашеных строках, и займется более увлекательной задачей - что случилось с кандидаткой :D
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Архитектор из дома

Post by Сабина »

Ljolja wrote:
Сабина wrote: А то может мне надо было просто отпросится в туалет и разрыдаться вдрызг, а я не поняла что хочут
не вылезти чере окно и плотно закрыть его за собой, тогда интервьюер забудет о так и не обрашеных строках, и займется более увлекательной задачей - что случилось с кандидаткой :D
Runaway candudette :lol:
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Архитектор из дома

Post by Ljolja »

Сабина wrote:
stenking wrote:
Ljolja wrote:ну врачи тоже иногда волонтерят, никоторые в африку даже ездят. Вам ето кажется странным или даже подозрительным?
Странно нанимать врачей по критерию "у кого волонтёрство круче". Истины ради, у вас есть публичный гитхаб профиль с кодом который можно обсуждать ?:)
какой-то маленький проектик есть на code.google.com но с Вами мне обсуждать ничего не хочется, my bad
Сабина wrote: Кстати в свете волонтерства вспомнился какой то прошлый разговор Лели и Интеррапта что они меньше чем за 100 в час и пальцем не пошевелят ;)
[/quote]
если задача интересная и люди приятные I can do it for free, если же напротив - it doesn't matter how much
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
User avatar
Леонид Ильич Брежнев
Уже с Приветом
Posts: 8628
Joined: 22 Mar 2011 01:40

Re: Архитектор из дома

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

Я вот не знаю, кого можно нанять вот такой тухлятиной? Причем и написанием/разворачиванием linked lists и atoi() они имхо все одинаково тухло пахнут. Видел массу нардоу, которые просто в указателях, всяких вторых/третих волкерах и темпах тонули. Причем стоит чуть притопить себя, как дальче тебя начинает просто захлестывать волной.
Я даже не знаю, может оно спрашивать про третий параметер функции CreateWindowEx() это и не самая плохая идея идея сама по себе? Отвечать можно даже не вставая с места.
Я давеча беседовал с Gayle Laakmann, которая автор книжки про интевью "Cracking the Coding Interview", она новую книгу пишет теперь про PM-омов, так вот она упорно считает, что спрашивать такие вот вопросы это правильно. И книга у нее сoстоит из них же.
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Архитектор из дома

Post by stenking »

Ljolja wrote:[какой-то маленький проектик есть на code.google.com но с Вами мне обсуждать ничего не хочется, my bad
Да мне тоже нафиг надо. Просто интересно было кто кроме интерапта что-то реально контрибьютит :)
Бога нет.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Архитектор из дома

Post by Мальчик-Одуванчик »

Леонид Ильич Брежнев wrote:
Сабина wrote:
olis wrote: Я видимо тоже отчасти виноват. Попросил написать функцию переворачивания сторки чтобы просто понять как человек логически мыслит и пишет элементарный код.
Мне вот например жутко интересно какого же кода то он от нее ждал:)?

Вот от меня какой то выпускник МГУ требовал с буфером в один байт ( или даже бит не помню :lol: ) -.это интересно что за зверь такой :shy: ?

Code: Select all

void* reverseString (char* str)
{
   int len = strlen(str);
   char* end = str + len -1;
   char t;
   for (int i = 0; i < len/2 -1; i++)
   {
       t = *str;
       *str++ = end;
       *end-- = t;
   }
}
Если бы речь шла о плюсах или о чистом С то применение "for" было бы небольшим флажком копать дальше.
Такая многословность критикуется как в плане читабельности, так в плане простоты и эффективности. В частности Страуструп в своей нетленке подробно разбирает подобный пример. Скорее всего ожидалось ну что-то типа while(str < end) swap(*str++,*end--); и возможно продолжения дискуссии в плане обобщения этого алгоритма на другие символьные типы и контейнеры.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Архитектор из дома

Post by Сабина »

Мальчик-Одуванчик wrote: Если бы речь шла о плюсах или о чистом С то применение "for" было бы небольшим флажком копать дальше.
Такая многословность критикуется как в плане читабельности, так в плане простоты и эффективности. В частности Страуструп в своей нетленке подробно разбирает подобный пример. Скорее всего ожидалось ну что-то типа while(str < end) swap(*str++,*end--); и возможно продолжения дискуссии в плане обобщения этого алгоритма на другие символьные типы и контейнеры.
Да уж вопросец для позиции Джава девелопера на eCommerce - поддерживать sales transactions для крупного ретейлера. Там самое то было обсуждать server side performance о чем я неоднократно намекала. Но индусам был нужен шардинг и только шардинг, а менеджеру вот это фигня. Славтебо что было много других вариантов
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Архитектор из дома

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

Леонид Ильич Брежнев wrote:
Сабина wrote:
olis wrote: Я видимо тоже отчасти виноват. Попросил написать функцию переворачивания сторки чтобы просто понять как человек логически мыслит и пишет элементарный код.
Мне вот например жутко интересно какого же кода то он от нее ждал:)?

Вот от меня какой то выпускник МГУ требовал с буфером в один байт ( или даже бит не помню :lol: ) -.это интересно что за зверь такой :shy: ?

Code: Select all

void* reverseString (char* str)
{
   int len = strlen(str);
   char* end = str + len -1;
   char t;
   for (int i = 0; i < len/2 -1; i++)
   {
       t = *str;
       *str++ = end;
       *end-- = t;
   }
}
Очевидно, со строкой из двух симмолов этот гениальный код не сделает ничего. Ибо len/2-1==0.
Стало быть, имеет смысл задача.
Мат на форуме запрещен, блдж!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Архитектор из дома

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

stenking wrote:
Сабина wrote: Мне вот например жутко интересно какого же кода то он от нее ждал:)? Очевидно что не рекурсивного примерчика что выше. А что именно ?
Думаете мелочь? Уже большой процент зависает или пытается смарт эссом быть и рассуждать что зачем это...

Code: Select all

for ( i= 0, length= s.length; i > (int) length / 2; i++ )
{
  temp = s[i]
  s[i] = s[length-i]
   s[length-i]  = temp

}
Очевидно, и этот код не работает, ибо length/2 всегда >=0, а значит - цикл не будет выполнен ни разу
Мат на форуме запрещен, блдж!
vopros
Уже с Приветом
Posts: 808
Joined: 13 Jan 2009 05:11
Location: из страны восходящих закатов

Re: Архитектор из дома

Post by vopros »

Сабина wrote:Но индусам был нужен шардинг и только шардинг
шардинг всмысле это:
Sharding is a type of database partitioning that separates very large databases the into smaller, faster, more easily managed parts called data shards. The word shard means a small part of a whole.
им были интересны какие то базовые принципы ? или конкретные вопросы, как сделать то сё
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Архитектор из дома

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

stenking wrote:Лол. А до такого кто-то додумался?:)

Code: Select all

for ( i= 0, s = s + s, length= s.length / 2; i > length ; i++ )
{
  s[i] = s[length-i]
  s[length-i] = null;
}
Очевидно, и это не будет работать, а s=s+s это не конкатенация строк (если мы про С), а получение указателя в небеса, которое скорей всего не отстроится даже, а если даже и представить, что это конкатенация, а вместо i>length мы все-таки напишем i<length, то мы получим строку, состоящую из length нулей а следом - исходную строку

Народ, вы чего? Какая отличная задача оказалась :(
Мат на форуме запрещен, блдж!
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Архитектор из дома

Post by Сабина »

vopros wrote:
Сабина wrote:Но индусам был нужен шардинг и только шардинг
шардинг всмысле это:
Sharding is a type of database partitioning that separates very large databases the into smaller, faster, more easily managed parts called data shards. The word shard means a small part of a whole.
им были интересны какие то базовые принципы ? или конкретные вопросы, как сделать то сё
Да и они пристали ко мне с конкретными вопросами как это все работает после того как я три раза упомянула что никогда с этим дела не имела . Потом то я поняла что это нужная вещь и важная для параллелизма и availability, но в позиции об этом не было и я и не заикалась что это умею. Описание как я решала аналогичные challenges с Ораклом их не волновали ни разу
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Архитектор из дома

Post by Сабина »

АццкоМото wrote:
stenking wrote:Лол. А до такого кто-то додумался?:)

Code: Select all

for ( i= 0, s = s + s, length= s.length / 2; i > length ; i++ )
{
  s[i] = s[length-i]
  s[length-i] = null;
}
Очевидно, и это не будет работать, а s=s+s это не конкатенация строк (если мы про С), а получение указателя в небеса, которое скорей всего не отстроится даже, а если даже и представить, что это конкатенация, а вместо i>length мы все-таки напишем i<length, то мы получим строку, состоящую из length нулей а следом - исходную строку

Народ, вы чего? Какая отличная задача оказалась :(
На какую позицию хоть объясни :) Или это чисто "довести до слез" приемчик
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Архитектор из дома

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

Сабина wrote:
АццкоМото wrote:
stenking wrote:Лол. А до такого кто-то додумался?:)

Code: Select all

for ( i= 0, s = s + s, length= s.length / 2; i > length ; i++ )
{
  s[i] = s[length-i]
  s[length-i] = null;
}
Очевидно, и это не будет работать, а s=s+s это не конкатенация строк (если мы про С), а получение указателя в небеса, которое скорей всего не отстроится даже, а если даже и представить, что это конкатенация, а вместо i>length мы все-таки напишем i<length, то мы получим строку, состоящую из length нулей а следом - исходную строку

Народ, вы чего? Какая отличная задача оказалась :(
На какую позицию хоть объясни :) Или это чисто "довести до слез" приемчик
А что там объяснять-то? Я же вроде как объяснил. Ну вот давайте представим, что исходная строка "123", s=s+s ВНЕЗАПНО сделает строку 123123. length=s.length/2 даст 3
Понятное дело, что i>length есть ложь, поэтому вообще ничего не выполнится. но мы не звери, мы читаем как i<length
тогда на первом шаге
s[0]=s[3]
s[3]=null
результат: 123null23
на втором шаге
s[1]=s[2]
s[2]=null
13nullnull23
на третьем шаге
s[2]=s[1]
s[1]=null
1null3null23

Хотя НА САМОМ деле stenking имел в виду
s = s[length-i-1]
s[length-i-1] = null;
т.е. классическая ошибка: в строке с из N символов длина строки равна N, но индекс последнего элемента - N-1. но и тогда на выходе получилось бы nullnullnull123 - в чем легко убедиться
Мат на форуме запрещен, блдж!
olis
Уже с Приветом
Posts: 4935
Joined: 02 Mar 2002 10:01
Location: UK

Re: Архитектор из дома

Post by olis »

Сабина wrote:
Ljolja wrote:
olis wrote: Я видимо тоже отчасти виноват. Попросил написать функцию переворачивания сторки чтобы просто понять как человек логически мыслит и пишет элементарный код. После этого она попросилась в туалет. По дороге она мне сказала что мы злые, ее не любим и пытаемся завалить. Не знаю, может быть Джава людям и правда нельзя такие задания на интервью давать ...
т.е. Вы как истинный джентльмен проводили даму до туалeта, да еше и подождали у двери :D :good: (вдруг она еше сбежит, а когда следуюшая подвернется, не известно. Так ведь и не узнаешь, как строки переворачивать :roll: )
Мне вот например жутко интересно какого же кода то он от нее ждал:)? Очевидно что не рекурсивного примерчика что выше. А что именно ?
Да примерно того что АццкоМото написал - код в одну строчку.
Я ведь не из вредности ее спросил, а так - чиста разговор поддержать. Потому что на вопросы коллеги она тоже толком не ответила.
От дамы мы никакаго кода не дождались. После туалета она повторила "злые вы, уйду я от вас", только нам обоим и на английском.

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