powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP помогите решить задачку
24 сообщений из 24, страница 1 из 1
PHP помогите решить задачку
    #38357381
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 у меня решить не получилось.
...
Рейтинг: 0 / 0
PHP помогите решить задачку
    #38357467
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
PHP помогите решить задачку
    #38357502
Nick-name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
На собеседовании.
...
Рейтинг: 0 / 0
PHP помогите решить задачку
    #38357503
Nick-name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну in_array наверно можно
...
Рейтинг: 0 / 0
PHP помогите решить задачку
    #38357505
Nick-name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick-nameНу in_array наверно можно
но задача ставилась так, что якобы массива A не видно и какие там элементы и сколько то же не известно.
...
Рейтинг: 0 / 0
PHP помогите решить задачку
    #38357509
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
PHP помогите решить задачку
    #38357513
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
PHP помогите решить задачку
    #38357517
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
PHP помогите решить задачку
    #38357520
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpz,

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

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

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

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

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

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



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

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

Телепат это отдельная "профессия", вот пусть они и истолкуют смысл задачи, особенно
авторто есть количество значений элементов из массива 'a'
...
Рейтинг: 0 / 0
PHP помогите решить задачку
    #38357654
Nick-name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
PHP помогите решить задачку
    #38357680
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick-name,

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

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

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

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

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

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

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

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


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