1. PHP / Говнокод #8139

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $login='55526723433';
    for($n=0; $n!=strlen($login)-2; $n++)
    {
    	if( $login[$n] == $login[$n+1] && $login[$n] == $login[$n+2] )
    	{
    		echo 'есть повторение';
    		exit;
    	}
    }

    снова на ваш суд))

    суть проблемы: проверка содержания строки, есть ли более двух одинаковых символов.

    Запостил: beetle, 09 Октября 2011

    Комментарии (20) RSS

    • это вместо регулярки.
      хотя может и есть толк.
      Ответить
    • Внезапно:
      $login='1';
      Ответить
    • а как надо?
      кроме регулярок
      Ответить
      • а как надо?
        после того как "запостил", тот же вопрос возник.
        хотя если ответить на ваш вопрос: то я бы ещё одну проверку добавил, и "условие" цикла изменил, но это уже мелочи.
        если модератор заглянет: удалите пост, а то действительно ничего интересного...бес меня попутал))
        Ответить
        • говоришь "есть ли более двух одинаковых символов" - а проверяешь "есть ли последовательность из более чем одного одинакового символа"

          перловые регулярки такое должны уметь - `/(.)\1/` для второго, /(.).*\1/ для первого - но я такого в пыхе не пробовал.
          Ответить
          • автор строк не я, я над своим ГК не смеюсь, а просто рыдаю))

            /(.).*\1/ - а квантификатор зачем?
            любой символ в подшаблоне, любые символы(от 0 и больше), а потом сверяется последний символ с первым.
            Ответить
            • ну так я прото и говорил что у тебя задача поставлена неоднозначно, т.к. что такое "более двух одинаковых символов" в строке не определено.

              "aba" - два символа "а" в строке, но твой ГК не матчит. и его регулярковый аналог /(.)\1/ тоже не матчит. а /(.).*\1/ - матчит.
              Ответить
              • более двух одинаковых подряд идущих символов. "aba" подходит и "Abba" тоже)

                вариант который просто матчит(не люблю я это слово):
                /(.)\1{2}/ - "соообщение"
                Ответить
        • Теперь этот пост будет преследовать тебя везде
          Ответить
    • >echo
      ну хз...
      Ответить
    • интересно что никого не смутило использование exit; :-D
      Ответить

    Добавить комментарий