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 часть всего кода.. С этим надо что-то решить..
Немає коментарів:
Дописати коментар