Re[23]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:31
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Dan Dare III пишет:

>> я не требую буквально такого же

Р>Семен, но ведь это же ужасть.


что ужасть не понял ? что надо требовать буквальное соответствие ?

всего 2 условия рекурсия и работоспособность
Re[15]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 12:32
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>Здравствуйте, aerobus, Вы писали:


DDI>>>Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки


A>>10 мин


DDI>вот, отличный результат только код трудночитаемый

DDI>задачу даю так чтобы смог её проверить без компьютера
DDI>"&& true" зачем

Да, насчет "&& true" чего-то я прогнал

Должно быть так:

        static bool IsSymm(string s)
        {
            return (s.Length > 1) ? ((s[0]==s[s.Length - 1]) ? (IsSymm(s.Substring(1, s.Length - 2))) : false) : true;
        }


его же эквивалент в читабельно-человекопонимабельном виде:


        static bool IsSymm(string s)
        {
            if (s.Length > 1)
            {
                if (s[0] == s[s.Length - 1])
                {
                    return IsSymm(s.Substring(1, s.Length - 2));
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return true;
            }
        }
Re[16]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:45
Оценка:
Здравствуйте, aerobus, Вы писали:

A>Да, насчет "&& true" чего-то я прогнал


скажи тогда мою позицию можно назвать "угадайте ответ, который я загадал" (к)"
Re[17]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 12:51
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>Здравствуйте, aerobus, Вы писали:


A>>Да, насчет "&& true" чего-то я прогнал


DDI>скажи тогда мою позицию можно назвать "угадайте ответ, который я загадал" (к)"


Не понял что ты имел ввиду — как-то ты рекурсивно сюжет закрутил

Кинь пжлст ссылку на твое решение этой задачи (просто интересно какой он другой подход к ее решению)
Re[27]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:52
Оценка:
Здравствуйте, Lao, Вы писали:

Lao>В С# не получиться сделать параметры по-умолчанию.


почему же не получится можно сэмулировать
Re[18]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:56
Оценка:
Здравствуйте, aerobus, Вы писали:

DDI>>скажи тогда мою позицию можно назвать "угадайте ответ, который я загадал" (к)"


A>Не понял что ты имел ввиду — как-то ты рекурсивно сюжет закрутил


A>Кинь пжлст ссылку на твое решение этой задачи (просто интересно какой он другой подход к ее решению)


решение
http://rsdn.ru/forum/message/2718731.1.aspx
Автор: Dan Dare III
Дата: 05.11.07


"угадайте ответ, который я загадал" (к)"
http://rsdn.ru/forum/message/2718935.1.aspx
Автор: The Lex
Дата: 05.11.07
Re[23]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.11.07 13:03
Оценка: 22 (3) :)
Здравствуйте, Ромашка, Вы писали:

Р>Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была

Р>действительно нужна? Ну или хотя-бы не тормозила жутко?

Точно, надо так
static void Main(string[] args)
{
    Func<Func<int, char>, int, int, bool> isSymmChars = null;
    isSymmChars = (c, h, t) => t - h < 2 || (c(h) == c(t) && isSymmChars(c, h + 1, t - 1));
    Func<Func<string>, bool> isSymmStr = (s) => isSymmChars(p => s()[p], 0, s().Length - 1);

    Console.WriteLine(isSymmStr(() => "12345654321"));
    Console.Read();
}
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 13:26
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Точно, надо так

AVK>
AVK>static void Main(string[] args)
AVK>{
AVK>    Func<Func<int, char>, int, int, bool> isSymmChars = null;
AVK>    isSymmChars = (c, h, t) => t - h < 2 || (c(h) == c(t) && isSymmChars(c, h + 1, t - 1));
AVK>    Func<Func<string>, bool> isSymmStr = (s) => isSymmChars(p => s()[p], 0, s().Length - 1);

AVK>    Console.WriteLine(isSymmStr(() => "12345654321"));
AVK>    Console.Read();
AVK>}
AVK>


объясни пожалуйста что это такое
Re[25]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.11.07 13:31
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>объясни пожалуйста что это такое


Программа на языке C#, осуществляющая проверку строки на симметричность рекурсивным образом.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[23]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 13:43
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>мы стобой не знакомы с какой стати ты говоришь что то про организацию ?


А я и не говорю о тебе лично или о твоей организации Я делаю вывод, основываясь на собственном опыте, собственных предпочтениях, собственном понимании эффективности и применимости тех или иных решений — здесь "собственный опыт" — примененный в некотором количестве реальных практических проектов — т.е. решающих конкретные задачи за деньги. (ну, иногда без — но это неважно)

DDI>какие аргументы на счет ужасного кода ?


Аргументы простые: в данном случае мы имеем "код ради кода" — решаем задачу несвойственным, пусть будет "необычным" методом, исключительно с целью применить этот метод. Я с таким сталкивался в реальной работе: "ой, вы знаете, а я тут классную вещь нашел! а давайте и мы где-нибудь ее у себя приспособим..." (к)

Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе. Скажу проще: есть очень большая вероятность что завтра ты придешь ко мне и скажешь: "а я хочу чтобы у тебя при проверке симметричности строк рекурсия применялась — будь добр..." (к) Еще раз: это не о тебе и не обо мне мы же пока опыта общения не имели — это мое видение того, как характеризует рабочий процесс появление _таких_ задач уже на собеседовании. Если ты не согласен что подобное решение — это "не очень хорошо, а точнее, вредно" — вот тут-то опять-таки и есть самый главный сабж: я (условно) — кандидат, ты (условно) — потенциальный работодатель — если ты реально используешь и отстаиваешь такие решения — хозяин-барин! — но я трижды подумаю чтобы идти к тебе работать и лично я пойду только в случае крайней нужды, поскольку опыт такой печальный повторять без нужды не хочу.

Я внятно выразился?
Голь на выдумку хитра, однако...
Re[28]: C# - как проводить собеседование ?
От: Lao Украина  
Дата: 05.11.07 13:43
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>Здравствуйте, Lao, Вы писали:


Lao>>В С# не получиться сделать параметры по-умолчанию.


DDI>почему же не получится можно сэмулировать


Расскажите, пожалуйста, как это "сэмулировать"?
Re[16]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 13:54
Оценка:
Здравствуйте, aerobus, Вы писали:

A>
A>        static bool IsSymm(string s)
A>        {
A>            return (s.Length > 1) ? ((s[0]==s[s.Length - 1]) ? (IsSymm(s.Substring(1, s.Length - 2))) : false) : true;
A>        }
A>


а логическими операторами почему не пользуешься?
Люди, я люблю вас! Будьте бдительны!!!
Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 13:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:

DDI>>объясни пожалуйста что это такое


AVK>Программа на языке C#, осуществляющая проверку строки на симметричность рекурсивным образом.


а какая версия C# ?
Re[22]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 14:03
Оценка: :)
Здравствуйте, Dan Dare III, Вы писали:

DDI>>13 строчек


int len=s.Length;
return  len<=1  ||  s[0]==s[len-1] && IsSymmetric(s.Substring(1,len-2));


я тебе предлагаю более простой способ отбора — показываешь свои 13 строчек девелоперу и если его кондрашка не хватит, сразу прощаешься
Люди, я люблю вас! Будьте бдительны!!!
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:08
Оценка:
Здравствуйте, The Lex, Вы писали:

TL>Аргументы простые: в данном случае мы имеем "код ради кода" — решаем задачу несвойственным, пусть будет "необычным" методом, исключительно с целью применить этот метод. Я с таким сталкивался в реальной работе: "ой, вы знаете, а я тут классную вещь нашел! а давайте и мы где-нибудь ее у себя приспособим..." (к)


приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку

TL>Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе.


TL>Я внятно выразился?


внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие
Re[24]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 14:19
Оценка:
Здравствуйте, The Lex, Вы писали:

много поскипано...

TL>Я внятно выразился?


Но если не суетиться и спокойно подумать — над тем, стоит ли использовать такие задачи на собеседовании — то... почему бы и нет? Но Баба Яга все равно против! (к)
Голь на выдумку хитра, однако...
Re[17]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 14:19
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>а логическими операторами почему не пользуешься?


Ну на мой взгляд так данный код немножко лучше читается и его легче развернуть в if-then-else и на бумаге и в голове.
Re[21]: C# - как проводить собеседование ?
От: Кэр  
Дата: 05.11.07 14:23
Оценка: 10 (1)
Здравствуйте, Dan Dare III, Вы писали:

DDI>Здравствуйте, gandjustas, Вы писали:


G>>Первое решение, пришедшее в голову (предыдущий пост — прикол, хотел рассказ о себе услышать):


DDI>хочешь услышать рассказ мое мыло

semen>>dot<kosobutski>a<gmail>dot<com
DDI>но только если придешь на собеседование а то
DDI>не хочу что бы ты как ромашка поступил

G>>Где тут применить РЕКУРСИЮ???


DDI>13 строчек


Грандиозно. И вы ищите людей, которые будут выдавать такой код в ответ на вашу задачу?.. Удачи вашей компании... Она ей пригодится.

Начнем с того, что данный код не работает на следующей симметричной строке "a\u0304ba\u0304". Пользователь соответствующего языка будет видеть короткую симметричную строку из трех символов и будет удивлен, почему ваш код утверждает обратное. Это раз.
Зачем вам там рекурсия крайне непонятно. Из-за рекурсии будет длинная вложенность вызовов функций со множеством копий строки на стэке. Расход памяти O(n^2), если не ошибаюсь. Даже если отбросить требования работы данного кода с четырех-байтными символами, реализовывать надо данную функцию через цикл. Это два.
Re[25]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 14:24
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

TL>>Аргументы простые: в данном случае мы имеем "код ради кода" — решаем задачу несвойственным, пусть будет "необычным" методом, исключительно с целью применить этот метод. Я с таким сталкивался в реальной работе: "ой, вы знаете, а я тут классную вещь нашел! а давайте и мы где-нибудь ее у себя приспособим..." (к)


DDI>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку


Давай пойдем от обратного: зачем тебе вообще "проверять кандидата на знание рекурсии"?

TL>>Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе.


TL>>Я внятно выразился?


DDI>внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие


Если дополнить картину твоим этим постом, то картина рисуется четче, но от это еще пессимистичнее...
Голь на выдумку хитра, однако...
Re[23]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:24
Оценка: -1
Здравствуйте, BulatZiganshin, Вы писали:

BZ>
BZ>int len=s.Length;
BZ>return  len<=1  ||  s[0]==s[len-1] && IsSymmetric(s.Substring(1,len-2));
BZ>


BZ>я тебе предлагаю более простой способ отбора — показываешь свои 13 строчек девелоперу и если его кондрашка не хватит, сразу прощаешься


решение дожно быть понятно всем если они не решили разумеется

кроме этого есть специалисты которые переходят на с# из других областей — им тяжеловато читать код

всем им я показываю решение что бы у кандидата не было сомнений что задача действительно разрешаема в 15 строчек

потому решени должно читаться очень, очень легко

если твой код кандидат не поймет — это исключительно твой прокол кандидата этого ты уже не увидишь

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