Bei dieser Herausforderung geht es darum, Code zu schreiben, um das folgende Problem zu lösen.
Bei zwei Zeichenfolgen A und B sollte Ihr Code den Start- und den Endindex einer Teilzeichenfolge von A mit den folgenden Eigenschaften ausgeben.
- Die Teilzeichenfolge von A sollte auch mit einigen Teilzeichenfolgen von B mit bis zu einer Ersetzung eines einzelnen Zeichens in der Zeichenfolge übereinstimmen.
- Es sollte keine Teilzeichenfolge von A mehr geben, die die erste Eigenschaft erfüllt.
Beispielsweise:
A = xxxappleyyyyyyy
B = zapllezzz
Die Teilzeichenfolge apple
mit Indizes 4 8
(Indizierung von 1) wäre eine gültige Ausgabe.
Ergebnis
Die Punktzahl Ihrer Antwort ergibt sich aus der Summe der Länge Ihres Codes in Byte und der Zeit in Sekunden, die auf meinem Computer benötigt wird, wenn Zeichenfolgen A und B mit einer Länge von jeweils 1 Million ausgeführt werden.
Testen und Eingeben
Ich werde Ihren Code mit zwei Zeichenfolgen mit einer Länge von 1 Million ausführen, die den Zeichenfolgen in http://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/ entnommen wurden.
Die Eingabe erfolgt standardmäßig in zwei Zeichenfolgen, die durch eine neue Zeile getrennt werden.
Sprachen und Bibliotheken
Sie können jede Sprache verwenden, die über einen frei verfügbaren Compiler / Interpreter / etc. Verfügt. für Linux und alle Bibliotheken, die auch Open Source sind und für Linux frei verfügbar sind.
Mein Computer Die Timings werden auf meinem Computer ausgeführt. Dies ist eine Ubuntu-Standardinstallation auf einem AMD FX-8350 Eight-Core-Prozessor. Dies bedeutet auch, dass ich in der Lage sein muss, Ihren Code auszuführen. Verwenden Sie daher nur leicht verfügbare kostenlose Software und fügen Sie vollständige Anweisungen zum Kompilieren und Ausführen Ihres Codes bei.
if(hash(str1 == test1 && str2 == test2)) print("100,150") else ..
-- Gedanken?