Вчера, обсуждая с очередным кандидатом, на должность тестера в нашу команду, задачу про разворот строчки, мне на ум пришло новое забавное решение этой задачки.

Вариант для C/C++. Увлеченно используем арифметику указателей.

char* reverse(char *s) {
    char *s0, *s1;

    for (s1 = s; *(s1) != '\0'; s1++);
    s1--;
    for (s0 = s; s0 < s1; s0++ && s1--) {
        char c = *(s0);
        *(s0) = *(s1);
        *(s1) = c;
    }
    return s;
}

Сравнивая производительность с предыдущими вариантами, надо обратить внимание на два момента:

  • фактически первый цикл — это вычисление длины строки, т.е. быстрее или медленнее это место, по сравнению со strlen, зависит от реализации strlen. Не знаю что конкретно там обычно написано, спекулировать не буду. Но думается, что что-то типа того и написано 🙂 С другой стороны, если вдруг окажется, что strlen работает быстрее чем просто поиск конца, в цикле, то никто не мешает нам написать конструкцию вида s1 = s+strlen (s). А дальше продолжить делать как тут.
  • Во время самого обмена значениями мы заметно сокращаем количество вычислений, т.к. вместо s+i и s+len-i, на каждом присваивании, мы все указатели вычисляем один раз, на проход.

На Java так красиво не получится. За отсутствием собственно указателей. Но близко к этому будет вариант с запуском навстречу двух счетчиков массива...

Уля и Настя болтают в машине.

  • Я не Уля! Я Улечка!
  • Почему?
  • Уля — толстая и некрасивая. Улечка — маленькая и красивая. А ты — Настенька.
  • Нет!
  • Асенька?
  • Нет!
  • А кто?
  • Я — Супергерой!

Откуда что берётся?!

Была, кстати, ещё версия, что Уля — большая, а Улечка — маленькая. Откуда взялась версия про толстую и некрасивую вообще неясно. Видимо мы с мамой активно слишком обсуждаем окружающих девок 🙂

Теперь задумаешься надо ли дочь Улей называть 8-0

Опять же совершенно непонятно откуда взялся супергерой 🙂

Так сложилось, что я очень много музыки знаю «на слух», но далеко не всегда знаю как песня называется и кто её исполняет. Но без этой информации достаточно сложно закачивать её в плеер.

Поэтому, лично у меня, достаточно часто возникает страстное желание идентифицировать песню, которая в данный момент играет на радио, в телевизоре или у соседа. И не всегда рядом оказываются знающие люди, как подсказавший мне, что «Bad to the bone» играют «George Thorogood and the Destroyers». А уж какое расследование я проводил, чтобы выяснить как называется и кто играет заглавную тему в сериале «Клан Сопрано». Зато теперь Alabama 3 — одна из моих любимых групп.

Но смартфоны приходят нам на помощь!

Читать далее

Мариша выступила резко против публикации дайджеста твитов в моём блоге. Говорит, что выглядит по дурацки.

Старые дайджесты удаляю, новые не публикую.

Желающие подписать на мои твиты, добро пожаловать в твиттер: http://twitter.com/#!/aapetrenko

P.S. Мариша, не подумай, что это я тебя бабой-ягой назвал. Просто идиома в тему 🙂

Покупал тут на днях гречку в Ленте, кормить деток-конфеток. Торопился, набросал всего в корзину, оплатил и помчался домой.

А дома жена посмотрела в чек и несколько удивилась цене гречки. Я тоже несколько удивился.

Цена гречки219.99 рублей за 1.5 килограмма — это 146.66 рублей за килограмм 8-0 Очевидно, перебои с гречкой так, с лета, и не закончились...

Отдельно порадовала скидка, по карте постоянного покупателя Ленты: 42 копейки 🙂

Сейчас заметил, что моё видео на YouTube, снятое про потрясающую воображение «работу» Навител Навигатора на Android, довольно популярное — 2755 просмотров.

Видео Навител НавигаторПонятно, что «довольно популярное» оно среди моих видео 🙂

Надеюсь, что хоть один из этих 2755 просмотревших отказался от покупки это УГ, выдаваемого за программу навигации. Уже это частично компенсирует мне зря выкинутые на ветер деньги, потраченные на покупку Навител Навигатора и карт к нему.

Напомню, что это видео я снимал во время реальной поездки, когда я пытался воспользоваться этой «навигационной программой», но так и не смог.

Свои мысли по этому поводу я тогда изложил в статье: «Полный и беспристрастный обзор навигационной программы Навител Навигатор».

Ну и вообще о программе для навигации Навител Навигатор по тегу: «Навител Навигатор».