=()= / Говнокод #100 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
@lib_001=('A','G','C','T','A');
@lib_002=('C','T','A','A','G');		 
@lib_003=('T','G','C','A','T');

$string=<FILE>;
@sequence=split("",$string);
@<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cdaea2a9a8f08dbea8bcb8a8a3aea8">[email protected]</a>[-7..-3];
		
if((join('',@lib_001) eq join('',@code)) or
    (join('',@lib_001[0..3]) eq join('',@code[0..3])) or
    (join('',@lib_001[1..4]) eq join('',@code[1..4])) or
    (join('',@lib_001[0,1,2,4]) eq join('',@code[0,1,2,4])) or
    (join('',@lib_001[0,2,3,4]) eq join('',@code[0,2,3,4])) or
    (join('',@lib_001[0,1,3,4]) eq join('',@code[0,1,3,4]))) 
	{$tag=join('',@code);
	 $closest_tag=join('',@lib_001);}
			
elsif((join('',@lib_002) eq join('',@code)) or
     (join('',@lib_002[0..3]) eq join('',@code[0..3])) or
     (join('',@lib_002[1..4]) eq join('',@code[1..4])) or
     (join('',@lib_002[0,1,2,4]) eq join('',@code[0,1,2,4])) or
     (join('',@lib_002[0,2,3,4]) eq join('',@code[0,2,3,4])) or
     (join('',@lib_002[0,1,3,4]) eq join('',@code[0,1,3,4]))) 
	{$tag=join('',@code);
	 $closest_tag=join('',@lib_002);}
		
elsif((join('',@lib_003) eq join('',@code)) or
     (join('',@lib_003[0..3]) eq join('',@code[0..3])) or
     (join('',@lib_003[1..4]) eq join('',@code[1..4])) or
     (join('',@lib_003[0,1,2,4]) eq join('',@code[0,1,2,4])) or
     (join('',@lib_003[0,2,3,4]) eq join('',@code[0,2,3,4])) or
     (join('',@lib_003[0,1,3,4]) eq join('',@code[0,1,3,4]))) 
	{$tag=join('',@code);
	 $closest_tag=join('',@lib_003);}

else
	{$tag=join('',@code);
	  $closest_tag='NONE';}

Запостил: guest guest, (Updated )

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

      • Обучение английскому языку в США

        Америка — страна возможностей и место, где сбываются мечты!

        Здесь есть все, что только можно представить: захватывающие мегаполисы с их ритмом и стилем во главе с Нью-Йорком и Чикаго, великолепные пляжи Флориды и Калифорнии, блистательный Голливуд, великолепная природа от тропиков и аризонской пустыни до Ниагарских водопадов и снежных гор Дакоты. Кем бы вы ни были, вы легко найдете место по душе среди наших 18 школ в США. Будь то университет Беркли в Сан-Франциско или Гарвард в Оксфорде, здесь вы сможете не только улучшить свой английский, но и отлично провести время, завести новых друзей и получить ни с чем не сравнимый опыт.

        Мы предлагаем:

        18 аккредитованных школ на обоих побережьях США
        Большой выбор курсов, среди которых бизнес-английский, интенсивный английский и подготовка к экзаменам
        Активную развлекательную программу после занятий: походы в театры и кино, экскурсии, спортивные мероприятия и прочие активности
        Возможность проживания в семье (для полного погружения в американские реалии) или в студенческом общежитии (если предпочитаете веселье и знакомства)
        Подробную консультацию наших специалистов, чтобы помочь выбрать нужный именно вам курс и подходящую школу
        Помощь партнеров в подготовке документов для американской визы
        Помощь в поступлении в университеты США после обучения в Kaplan


        школа Каплан в Бостон
        makeURLlink('https://www.kaplaninternational.com/ru/united-states/boston;)' &&

        Лос-Анджелес
        makeURLlink('https://www.kaplaninternational.com/ru/united-states/chicagoI;)'

        ___________________
        Ответить
      • Нет конечно, на пхп секвенировали какие-то гены, и случайно синтезировали коронавирус.
        Ответить
  • phpdude:
    именно изза таких кусков кода я и ненавижу перл.
    Ответить
  • а тут особо ничего и не поделаешь, разве только сделать @lib = ((a,b,c,d,e),(a1,b1,c1,d1,e1),(a1,b2,c2, d2,e2))
    и в цикле проверять.

    или другой вариант, регуляркой заменить все joinы
    Ответить
  • $mismatches=0;for $i (0..$#a) {if ($lib[$i] ne $code[$i]) {$mismatches++;}
    if ($mismatches <=1) ....
    Ответить
  • Сергей Мартын:
    Вот тебе на - имя обрезает 🙁 Что за говнокод?
    Ответить
  • Bobby:
    Не говонокод. Алгоритм не продуман просто.
    Ответить
  • надо представлять последовательность строкой, а не массивом символов и работать регулярками.

    ненавидеть Perl из-за таких кусков глупо, потому, что писал явно не пёрл-программист, скорее какой-нибудь джавер
    Ответить
  • Примерно так должен выглядеть этот код, чтобы не быть говном:

    # Является ли набор тэгов @$tag_ref ближайшим к последовательности символов @$chars_ref?
    sub is_closest {
    my ($tag_ref, $chars_ref) = @_;

    # возможные варианты комбинаций индексов
    my @index_variants = (
    [0 .. 5], [0 .. 3], [1 .. 4],
    [0, 1, 2, 4], [0, 2, 3, 4], [0, 1, 3, 4],
    );
    # поиск совпадений. при нахождении совпадения возвращаем 1
    for my $indexes ( @index_variants ) {
    if ( join(\'\', @$tag_ref[ @$indexes ]) eq join(\'\', @$chars_ref[ @$indexes ]) ) {
    return 1;
    }
    }
    }

    # Варианты наборов тэгов
    my @tags_variants = (
    [qw/ A G C T A /],
    [qw/ C N A A G /],
    [qw/ T G C A T /],
    )

    # Читаем строку из файла
    my $string = <FILE>;
    # Выбираем идущие подряд 5 символов за два до конца строки
    my @sequence = ( split(\"\",$string) )[-7 .. -3];

    # Сюда будет записан результат поиска
    my $closest_tag;

    FIND_CLOSEST:
    for my $tag_ref ( @tags_variants ) {
    if is_closest( $tag_ref, \\@test_chars ) {
    $closest_tag = join(\'\', @$tag_ref);
    last FIND_CLOSEST;
    }
    }

    $closest_tag ||= \'NONE\';
    Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8