Ce défi consiste à écrire du code pour résoudre le problème suivant.
Étant donné deux chaînes A et B, votre code doit afficher les indices de début et de fin d'une sous-chaîne de A avec les propriétés suivantes.
- La sous-chaîne de A doit également correspondre à une sous-chaîne de B avec jusqu'à une substitution d'un seul caractère dans la chaîne.
- Il ne devrait plus y avoir de sous-chaîne de A qui satisfait la première propriété.
Par exemple:
A = xxxappleyyyyyyy
B = zapllezzz
La sous-chaîne apple
avec des indices 4 8
(indexation à partir de 1) serait une sortie valide.
But
Le score de votre réponse sera la somme de la longueur de votre code en octets + du temps en secondes qu'il faut à mon ordinateur lorsqu'il est exécuté sur les chaînes A et B de 1 million de longueur chacune.
Test et saisie
Je vais exécuter votre code sur deux chaînes de 1 million de long extraites des chaînes de http://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/
L'entrée sera en standard dans et sera simplement deux chaînes, séparées par une nouvelle ligne.
Langues et bibliothèques
Vous pouvez utiliser n'importe quelle langue disposant d'un compilateur / interprète / etc disponible gratuitement. pour Linux et toutes les bibliothèques qui sont également open source et librement disponibles pour Linux.
Ma machine Les chronomètres seront exécutés sur ma machine. Il s'agit d'une installation ubuntu standard sur un processeur AMD FX-8350 à huit cœurs. Cela signifie également que je dois pouvoir exécuter votre code. Par conséquent, n'utilisez que des logiciels gratuits facilement disponibles et veuillez inclure des instructions complètes sur la façon de compiler et d'exécuter votre code.
if(hash(str1 == test1 && str2 == test2)) print("100,150") else ..
-- pensées?