Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP помогите решить задачку / 24 сообщений из 24, страница 1 из 1
06.08.2013, 20:15
    #38357381
Nick-name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
есть вот такой код
Код: php
1.
2.
3.
4.
5.
6.
7.
$a = array('a','b','a','b','b','b','a');
$b= array('A'=>'','B'=>'');
foreach($a as $value)
{

}
print_r($b);


Суть задачи, чтобы в ячейки массива b попало попали числа в 'A' = 3 в 'B' = 4 то есть количество значений элементов из массива 'a'
а теперь сложность мы не знаем какие элементы в массиве А и сколько их и второе нельзя пользоваться функциями для работы с массивами.

p/s у меня решить не получилось.
...
Рейтинг: 0 / 0
06.08.2013, 21:39
    #38357467
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-nameесть вот такой код
Код: php
1.
2.
3.
4.
5.
6.
7.
$a = array('a','b','a','b','b','b','a');
$b= array('A'=>'','B'=>'');
foreach($a as $value)
{

}
print_r($b);


Суть задачи, чтобы в ячейки массива b попало попали числа в 'A' = 3 в 'B' = 4 то есть количество значений элементов из массива 'a'
а теперь сложность мы не знаем какие элементы в массиве А и сколько их и второе нельзя пользоваться функциями для работы с массивами.

p/s у меня решить не получилось.

А кто запретил пользоваться функциями для работы с массивами? например in_array ?
...
Рейтинг: 0 / 0
06.08.2013, 22:13
    #38357502
Nick-name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Програмёр,
На собеседовании.
...
Рейтинг: 0 / 0
06.08.2013, 22:14
    #38357503
Nick-name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Ну in_array наверно можно
...
Рейтинг: 0 / 0
06.08.2013, 22:17
    #38357505
Nick-name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-nameНу in_array наверно можно
но задача ставилась так, что якобы массива A не видно и какие там элементы и сколько то же не известно.
...
Рейтинг: 0 / 0
06.08.2013, 22:20
    #38357509
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-nameПрограмёр,
На собеседовании.

Данный работодатель явно извращенец :) Хотя ладно, не мне судить. Я бы сделал так:
Код: php
1.
2.
3.
4.
5.
6.
7.
$a = array('a','b','a','b','b','b','a');
$b= array('A'=>'','B'=>'');
foreach($a as $value)
{
 if(isset($b[strtoupper($value)])) $b[strtoupper($value)]++;
}
print_r($b);



если не ошибся, то как-то так.
...
Рейтинг: 0 / 0
06.08.2013, 22:23
    #38357513
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-nameчтобы в ячейки массива b попало попали числа в 'A' = 3 в 'B' = 4
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$a = array('a','b','a','b','b','b','a');
$b = array('A'=>0,'B'=>0);
foreach($a as $value)
{
	if($value == 'a') $b['A']++;
	if($value == 'b') $b['B']++;
}
print_r($b);


Хотя, и с неявным преобразованием можно.
...
Рейтинг: 0 / 0
06.08.2013, 22:27
    #38357517
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-nameесть вот такой код
Код: php
1.
2.
3.
4.
5.
6.
7.
$a = array('a','b','a','b','b','b','a');
$b= array('A'=>'','B'=>'');
foreach($a as $value)
{

}
print_r($b);


Суть задачи, чтобы в ячейки массива b попало попали числа в 'A' = 3 в 'B' = 4 то есть количество значений элементов из массива 'a'
а теперь сложность мы не знаем какие элементы в массиве А и сколько их и второе нельзя пользоваться функциями для работы с массивами.

p/s у меня решить не получилось.
"А" не массив, "$a" - массив.
Код: php
1.
2.
3.
4.
5.
6.
foreach ($a as $val) {
    if (isset($b[$val]))  // или strtoupper($val) если верхний регистр нужен
        $b[$val]++;
    else
        $b[$val] = 1;
}
...
Рейтинг: 0 / 0
06.08.2013, 22:29
    #38357520
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
phpz,

else лишний. Без него ведь, если не ошибаюсь, работать тоже будет.
...
Рейтинг: 0 / 0
06.08.2013, 22:34
    #38357521
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Програмёрphpz,

else лишний. Без него ведь, если не ошибаюсь, работать тоже будет.
А кто его знает, просто старая привычка присваивать переменным начальные значения
...
Рейтинг: 0 / 0
06.08.2013, 22:43
    #38357526
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
phpz,

На собеседовании конечно надо быть кратким:
Код: php
1.
foreach ($a as $val) { $b[strtoupper($val)]++; }
...
Рейтинг: 0 / 0
06.08.2013, 22:45
    #38357527
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
phpzПрограмёрphpz,

else лишний. Без него ведь, если не ошибаюсь, работать тоже будет.
А кто его знает, просто старая привычка присваивать переменным начальные значения

Это правильно, но по условию задачи начальные значения определены, а значит проверяющий может посчитать, что соискатель пишет код неоптимально и невнимательно, потому на собеседованиях стоит уделять внимание мелочам. Изредка задачи дают именно для заострения внимания на мелочах. У меня так было по крайней мере :)
...
Рейтинг: 0 / 0
06.08.2013, 22:51
    #38357531
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
phpzphpz,

На собеседовании конечно надо быть кратким:
Код: php
1.
foreach ($a as $val) { $b[strtoupper($val)]++; }



Задача описана неточно... Просто если в массиве $a будет элемент 'c', то и в массиве $b появится элемент 'C'. Но в условии определены только A и B, а это могло означать, что они хотят именно эти элементы получать (или те, которые определены уже).

Но это не однозначно, так что...
...
Рейтинг: 0 / 0
06.08.2013, 23:00
    #38357534
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Програмёр,

Телепат это отдельная "профессия", вот пусть они и истолкуют смысл задачи, особенно
авторто есть количество значений элементов из массива 'a'
...
Рейтинг: 0 / 0
07.08.2013, 02:51
    #38357654
Nick-name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
vkleNick-nameчтобы в ячейки массива b попало попали числа в 'A' = 3 в 'B' = 4
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$a = array('a','b','a','b','b','b','a');
$b = array('A'=>0,'B'=>0);
foreach($a as $value)
{
	if($value == 'a') $b['A']++;
	if($value == 'b') $b['B']++;
}
print_r($b);


Хотя, и с неявным преобразованием можно.
Ну так я то же так сделал бы, Но товарищ который мне это загадал, сказал, что мол, мы не знаем какие значения в первом массиве. Я с разгону то так примерно и сделал, мне показалось, оч лёгким заданием. ну в итоге всё на этом и закончилось, на работу меня не взяли. Я конечно не профи, но ченснее было бы сразу отказать. Мало ли просто , человек не понравился.
...
Рейтинг: 0 / 0
07.08.2013, 07:28
    #38357680
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-name,

Похоже что мнения в понимании задачи разделились. С одной стороны, в условии задачи ясно сказано что в результирующем массиве должны быть именно ключи A и B. Про возможное наличие и отсутствие других ключей не упоминается. С другой стороны, в заблуждение вводит фраза "мы не знаем какие элементы в массиве А", которая может означать (а может и нет) что в качестве элементов могут выступать так же и числа, объекты, массивы и т.д. - а с ними что делать, как считать? Многие из приведенных здесь вариантов вывалят на них ошибку. Очевидно, для исключения подобной ситуации нужно добавить еще проверку на соотетствие типа данных в варианте с strtoupper(), например. Потому решение исключительно в рамках явно определенных Вами условий, а если постановщику задачи оно "не подходит" - так тут уж извините, сама постановка задачи хромает.
...
Рейтинг: 0 / 0
07.08.2013, 10:22
    #38357842
Nick-name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Да собственно, с собеседованием то уже всё равно не сложилось, но большое всем спасибо за варианты решения.
...
Рейтинг: 0 / 0
07.08.2013, 10:38
    #38357873
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-nameДа собственно, с собеседованием то уже всё равно не сложилось, но большое всем спасибо за варианты решения.

Если Вы задачу изложили точно так же, как Вам её задали (без переформулировок), то она реально поставлена неверно. vkle уже написал о "непонятностях" в задаче, особенно сильно из них меня насторожило "мы не знаем какие элементы в массиве А". Дело в том, что мы не сможем писать код, обрабатывающий данный массив не понимая его природы возникновения.

А теперь представьте, что Вы там работаете и Вам приносят задание подобного типа, в котором нифига не понятно... оно Вам надо? :) Собеседование штука двусторонняя... На нём тоже следует смотреть, подходят ли Вам формулировки задач, как к Вам относятся при проведении собеседования и т.д.

P.S. точно так же не попал в яндекс, а теперь не жалею (хотя мне на этом же форуме сразу сказали что нечего жалеть, и лучше подумать надо ли мне это вообще). Работаю дома на работе намного лучше с возможностью нормального роста. Вообщем, если бы даже сами сейчас предложили, я бы скорее всего отказался (ну точно не пошёл бы на ту зарплату, которую озвучил им на собеседовании).
...
Рейтинг: 0 / 0
07.08.2013, 10:51
    #38357904
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Програмёрмы не сможем писать код, обрабатывающий данный массив не понимая его природы возникновения.Ну почему сразу не сможем то. Перебираем элементы, смотрим что такое, и относим к той или иной категории. Другое дело, нафига фантазировать и писать дополнительные проверки, если, допустим, в исходном массиве гарантировано будут только строки 'a' и 'b' в любой последовательности и количестве (при этом мы так же не будем знать "какие элементы в массиве А", как бы оно ни странно звучало).
...
Рейтинг: 0 / 0
07.08.2013, 12:00
    #38358054
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
vkleПрограмёрмы не сможем писать код, обрабатывающий данный массив не понимая его природы возникновения.Ну почему сразу не сможем то. Перебираем элементы, смотрим что такое, и относим к той или иной категории. Другое дело, нафига фантазировать и писать дополнительные проверки, если, допустим, в исходном массиве гарантировано будут только строки 'a' и 'b' в любой последовательности и количестве (при этом мы так же не будем знать "какие элементы в массиве А", как бы оно ни странно звучало).

Но как автор сказал, работодателя не устроил тот вариант, который был похож на Ваш. Значит автор задания, когда его писал, явно думал о чём-то ... ))) Даже не знаю о чём... Так как при таких требованиях (надо посчитать именно 'a' и 'b') Ваш вариант подошел бы идеально :)
...
Рейтинг: 0 / 0
07.08.2013, 18:39
    #38358733
Nick-name
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Сегодня был на собеседовании, я уже готовый к разным подвохам, говорю, давайте сюда тесты, на что оба моих интервьюира, сказали, нафига? Если ты идиот то мы это и так поймём, а если не всё так плохо, то научим тому чего не знаешь. Наверно всё от степени заинтересованности зависит.
...
Рейтинг: 0 / 0
07.08.2013, 18:49
    #38358750
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
на сотом кандидате понимать что он идиот надоедает. появляются тесты.
...
Рейтинг: 0 / 0
07.08.2013, 19:02
    #38358761
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-nameСегодня был на собеседовании, я уже готовый к разным подвохам, говорю, давайте сюда тесты, на что оба моих интервьюира, сказали, нафига? Если ты идиот то мы это и так поймём, а если не всё так плохо, то научим тому чего не знаешь. Наверно всё от степени заинтересованности зависит.

Немного не так делаете (моё мнение). Лучше не тесты требовать, а уточнять условия задачи до того состояния, пока требования не станут для Вас очевидными (то есть начинать делать только тогда, когда задание не может быть понято двусмысленно). Если же уточнений нету, так делать как поняли, а уж когда скажут "не так" уточнять, что не устраивает в решении и объяснять как задача была понята (хотя если было задано достаточное количество вопросов, то такого не происходит).

Тут понимаете, отказать в тестах могут тогда, когда они хотят быть уверены в том, что Вы можете предусмотреть далнейшее развитие ситуации (универсальность кода). Если Вас за комп посадили и сказали "пиши", тогда тем более... Значит они потом будут тестировать (возможно) и смотреть сколько ошибок на их тестах вылазит.
...
Рейтинг: 0 / 0
08.08.2013, 09:17
    #38359130
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP помогите решить задачку
Nick-name,

Мне этот тест чем-то фильм "Люди в черном" напомнил, а именно сцену тестирования. Может действительно идея была найти того, кто укажет на двусмысленность поставленного задания, а не будет слепо пытаться его решить.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP помогите решить задачку / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]