вівторок, 28 жовтня 2014 р.

CODE CHALLENGE: Solve the Pattern Matching Problem (restated below).
Pattern Matching Problem: Find all occurrences of a pattern in a string.      Input: Two strings, Pattern and Genome.      Output: All starting positions where Pattern appears as a substring of Genome.
Sample Input:      ATAT      GATATATGCATATACTT
Sample Output:      1 3 9
##надобно вывести номера позиции в Genome, на которых стоит Pattern). Я подолбалась с этим челенжем. ибо вроде у меня все хорошо - а квиз не принимает мое решение - говорит incorrect. Оказалось: мой аутпут был в виде списка через запятую, а надо было строку через пробел. Поменять формат аутпута и все принялось. 

Correct! Done!))
def pos_reverse(Pattern, Genome):
       pos = []
       for i in range(len(Genome)):
              if Genome[i:i+len(Pattern)] == Pattern:
                    pos.append(str(i))
       return " ".join(pos)

print  pos_reverse("ATAT", "GATATATGCATATACTT") ==> 1 3 9

На реальных данных для генома вибриона холеры я не могу просчитать эти позиции, поскольку онлайновый питоновский компилятор не принимает строку такой длины - 1.1 Мб текста. Принимает максимум 59675 символов, а в геноме - 1108251. Но даже для того, что приняло - не считает почему-то.. те.е отрабатывает и выдает пустой лист, какбы говорит. что таких последовательностей в этом куске генома как бы нет.. такое может быть? теоретичсеки млжет быть, ибо это 18 часть всего кода..   С этим надо что-то решить..

Немає коментарів:

Дописати коментар