Ich habe zwei Beispiele für zwei SaitenFinden kontaktieren und nicht berührenden Teil von zwei Strings
YHFLSPYVY # answer
LSPYVYSPR # prediction
+++******ooo
YHFLSPYVS # answer
VEYHFLSPY # prediction
oo*******++
Wie oben erwähnt Ich mag würde den Überlappungsbereich (*
) und nicht-überlappenden Bereich in Antwort finden (+
) und Vorhersage (o
).
Wie kann ich es in Python tun?
Ich bin fest mit diesem
import re
# This is of example 1
ans = "YHFLSPYVY"
pred= "LSPYVYSPR"
matches = re.finditer(r'(?=(%s))' % re.escape(pred), ans)
print [m.start(1) for m in matches]
#[]
Die Antwort, die ich zum Beispiel zu bekommen hoffen 1:
plus_len = 3
star_len = 6
ooo_len = 3
Wollen Sie die erste Überlappung? Oder die längste Überlappung? –
Wollen Sie auch die Zeichenfolge mit * + o oder nur die Werte von plus_len usw.? –
Sieht aus wie [längste gemeinsame Subsequenz] (https://en.wikipedia.org/wiki/Longest_common_subsequence_problem) –