powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Разминка для мозгов
21 сообщений из 271, страница 11 из 11
(PHP) Разминка для мозгов
    #37766142
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И я немного усложню: добейтесь появления у объекта класса без родителей и наследников двух свойств с одинаковым названием и разной областью видимости.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37766152
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и без примесей.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37766534
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uScareCrowбез прохода по второму массиву?
да.
тогда уточню немного.

Дан массив чисел:
Код: php
1.
2.
3.
4.
5.
$a = array(
 0,1,2,3,4,5,6,7,8,9, 
 0,1,2,3,4,5,6,  8,9
);
$n=null;


Как видно, в массиве все числа, кроме одного, встречаются 2 раза, а одно число(7) только один раз.
необходимо найти это число, всего за один проход массива, и поместить найденное число в переменную $n .

PS всякие готовые функции array_xxxxx() и т.п. использовать нельзяа как насчет того же самого, только с двумя "одинокими" числами? :)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37767393
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymИ я немного усложню: добейтесь появления у объекта класса без родителей и наследников двух свойств с одинаковым названием и разной областью видимости.
пойдет?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
class Obj {
	private $name = 'PRIVATE';
	private $vars = array();
	public function getPrivate() {
		return $this->name;
	}
	public function __set($k,$v) {
		$this->vars[$k]=$v;
	}
	public function __get($k) {
		if (isset($this->vars[$k]))
			return $this->vars[$k];
		return null;
	}
}

echo '<pre>';
$o = new Obj();
$o->name = 'PUBLIC';

var_dump($o->getPrivate());
var_dump($o->name);


...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37767472
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

не, должны быть именно два поля. Примерно как в первом варианте ответа, только без наследования.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37767595
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymr u,
не, должны быть именно два поля. Примерно как в первом варианте ответа, только без наследования.
-serialize
-modify
-unserialize
? ))
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37767872
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

"ты знал" (c) :)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37767898
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот только непонятно, баг это или нет...
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37767917
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymВот только непонятно, баг это или нет...
ну получить такой объект можно, а вот что с ним дальше делать?
с доступом к полям будут проблемы )
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37767921
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

ага.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37768034
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меча как насчет того же самого, только с двумя "одинокими" числами? :)
за один проход массива?
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37768139
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uЯростный Меча как насчет того же самого, только с двумя "одинокими" числами? :)
за один проход массива?да, забыл сказать, не обязательно за один.
можно несколько, пусть будет не более 5.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37768222
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

поздно..... сделал за один ))
ну и проход по вспомогательному еще. без него не придумал как.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
$a = array(
	0,1,2,3,4,
	0,  2,3
);

$xor=$n=$m=null; // <- digits
$sums=array();//	sums of XOR for every bit
foreach($a as $k=>$v) {
	$xor ^= $v;
	foreach(range(1,$v) as $vv) {
		if ($v&$vv) {
			if (!isset($sums[$vv]))
				$sums[$vv]=null;
			$sums[$vv] ^= $v;
		}
	}
}
// search $m,$n
foreach($sums as $v) {
	if ($v>0 && ($v^$xor)>0){
		$n=$v;
		$m = $xor^$n;
		break;
	}
}
echo 'n='.$n.' m='.$m;


...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37768240
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

я правильно понимаю, что тут есть вложенный цикл (длина которого равна очередному числу)?
если да, то фактически сложность будет больше O(N)
есть простой, линейный вариант, без вспомогательного массива.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37768308
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечr u,

я правильно понимаю, что тут есть вложенный цикл (длина которого равна очередному числу)?
если да, то фактически сложность будет больше O(N)
есть простой, линейный вариант, без вспомогательного массива.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$a = array(
	0,1,2,3,4,
	0,  2,3
);
$filter = $result = array();
foreach($a as $value) {
if (isset($filter[$value])) {

} else if (isset($result[$value])) {
unset($result[$value]);
$filter[$value]= true;
} else {
$result[$value]= true;
}
}
var_dump($result);


список всех значений которые встречються только 1 раз
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37769652
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

$filter лишнее.
но получается тоже не то. продолжаем искать вариант без вспомогательных массивов
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37774837
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня пытался написать регулярку, которая преобразовывала бы бб-код:

Код: plaintext
1.
[ul disc]
    
item 1[/li]

item 2[/li]

item 3[/li]

в HTML.

Дополнительная сложность в том, что нужно удалить символы перевода строки, т.к. текст потом еще обрабатывается с помощью nl2br.
Честно говоря посидев над задачей минут 15 одной регуляркой сделать это так и не получилось.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37774840
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь, тег не закрыл, но думаю суть понята.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37774846
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а нет, тег то я видимо закрыл, тут движок воспринял это как свои теги)

Код: html
1.
2.
3.
4.
5.
[ul disc]
    [li]item 1[/li]
    [li]item 2[/li]
    [li]item 3[/li]
[/ul]
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37775347
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

а одной регуляркой тут обойтись если и можно то очень накладно будет.
я бы сделал както так
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$bb = "[ul disc]
	[li] 
	item 1[/li]
    [li]item 
    2[/li]
    [li]item 3
    [/li]
[/ul]";
$bb = str_replace(PHP_EOL,'',$bb);
$html = preg_replace("/\[(\/?(ul|li)[^\]]*)\]/i","<$1>",$bb);
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #37789016
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я примерно так и сделал, точнее двумя, сначала все LI зменил в UL, а потом и сами UL
...
Рейтинг: 0 / 0
21 сообщений из 271, страница 11 из 11
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Разминка для мозгов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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