Contribution:
Deux chaînes sans sauts de ligne ni espaces.
Production:
Les deux chaînes d'entrée sur des lignes distinctes, avec des espaces si nécessaire † pour l'une des deux chaînes. Et une troisième ligne avec les personnages A
, R
, M
et , représentant ajouté , retiré , modifié , et sans changement .
† Nous ajoutons des espaces à la chaîne d'entrée supérieure ou inférieure (si nécessaire). Le but de ce défi est de générer le moins de changements ( ARM
) possible, également connu sous le nom de distance Levenshtein .
Exemple:
Disons que les chaînes d'entrée sont ABCDEF
et AFBECD
, alors la sortie serait la suivante:
A B CDEF
AFBECD
A A RR
Voici quelques autres sorties invalides possibles comme exemple (et il y en a beaucoup plus):
ABCDEF
AFBECD
MMMMM
A BCDEF
AFBECD
A MMMR
AB CDEF
AFBECD
MAMMMR
ABC DEF
AFBECD
MMAMMR
ABC DEF
AFBECD
MMAA RR
ABCDEF
AFB ECD
MMR MA
AB CDEF // This doesn't make much sense,
AFBECD // but it's to show leading spaces are also allowed
AM A RR
Cependant, aucun de ceux-ci n'a que quatre changements, donc seule A B CDEF\nAFBECD \n A A RR
une sortie valide pour ce défi.
Règles du défi:
- Vous pouvez supposer que les chaînes d'entrée ne contiennent pas de nouvelles lignes ou d'espaces.
- Les deux chaînes d'entrée peuvent être de longueurs différentes.
- L'une des deux chaînes d'entrée doit rester telle quelle, à l'exception des espaces facultatifs de début / fin.
- Si vos langues ne prennent pas en charge autre chose que l'ASCII, vous pouvez supposer que l'entrée ne contiendra que des caractères ASCII imprimables.
- Le format d'entrée et de sortie est flexible. Vous pouvez avoir trois chaînes distinctes, un tableau de chaînes, une chaîne unique avec des nouvelles lignes, un tableau de caractères 2D, etc.
- Vous êtes autorisé à utiliser autre chose à la place de
ARM
, mais indiquez ce que vous avez utilisé (par exemple123
, ouabc.
, etc.) - Si plusieurs sorties valides sont possibles avec le même nombre de modifications (
ARM
), vous pouvez choisir de sortir l'une des sorties possibles ou toutes. Les espaces de début et de fin sont facultatifs:
A B CDEF AFBECD A A RR
ou
"A B CDEF\nAFBECD\n A A RR" ^ Note there are no spaces here
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés, des programmes complets. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
In: "ABCDEF" & "AFBECD"
Output (4 changes):
A B CDEF
AFBECD
A A RR
In: "This_is_an_example_text" & "This_is_a_test_as_example"
Possible output (13 changes):
This_is_an _example_text
This_is_a_test_as_example
MAAAAAAA RRRRR
In: "AaAaABBbBBcCcCc" & "abcABCabcABC"
Possible output (10 changes):
AaAaABBbBBcCcCc
abcABCab cABC
R MM MMMR MM R
In: "intf(){longr=java.util.concurrent.ThreadLocalRandom.current().nextLong(10000000000L);returnr>0?r%2:2;}" & "intf(){intr=(int)(Math.random()*10);returnr>0?r%2:2;}"
Possible output (60 changes):
intf(){longr=java.util.concurrent.ThreadLocalRandom.current().nextLong(10000000000L);returnr>0?r%2:2;}
intf(){i ntr=( i n t)(M ath.r andom ()* 10 );returnr>0?r%2:2;}
MR M MRRRRRR RRRR RRRRRR MMMRR MMMMRRR RRRRRRRR MRRRRRRRRR RRRRRRRRRR
In: "ABCDEF" & "XABCDF"
Output (2 changes):
ABCDEF
XABCD F
A R
In: "abC" & "ABC"
Output (2 changes):
abC
ABC
MM