"Шизофренические ситуации", или как противостоять бытовым манипуляциям
Двойной крючок...
Иногда бывает: вроде ничего такого тебе и не сказали, а внутри вдруг вспыхивает злость или внезапно хочется расплакаться от безысходности. Нет-нет, это не "вы слишком эмоциональный(-ая)!" Это вами
.
Как сберечь любовь в отношениях
Дурачьтесь и любите...
"Любовь - это вам не хухры-мухры, любовь - это работа!" - внушительно покачивая пальцем, твердят семейные психологи. И, в общем-то, не зря твердят.
Мы все мечтаем о любви и счастливой жизни. Но далеко не все готовы
.
Не так давно на Хабре была статья про codebattle от hexlet.io. Ну и затянуло же нас с друзьями, это как наркотик! Вроде пытаешься на работу отвлечься, а руки прям сами тянутся зайти на сайт, и все мысли — об оптимизации решений.
И вот однажды попалась мне задачка, звучала она так: «The decimal number 585 is 1001001001 in binary. It is palindromic in both bases. Find n-th palindromic number». А если по-русски, то так: «десятичное число 585 в двоичном виде выглядит как 1001001001. Оно является палиндромом в обеих системах счисления. Найдите n-ый подобный палиндром». Она совсем не сложная и решена была быстро.
function is_palindrome($num) {
return $num == strrev($num);
}
function solution($num) {
$count = $i = 0;
while($count<$num) {
$i++;
// Проверяем по порядку все числа, являются ли они палиндром в десятичном и двоичном виде
if (is_palindrome($i) && is_palindrome(decbin($i))){
$count++;
}
}
return $i;
}
Но вот незадача. Примерно в то время на сайт напал хабраэффект, и тесты ни в какую не хотели проходить, отваливались по timeout. В местном чате началось обсуждение по оптимизации решения, но никто дельного совета так и не дал. Потом сайт отпустило, все тесты прошли, но желание оптимизировать осталось…
Читать дальше →