The London Underground AKA The Tube est le plus ancien chemin de fer souterrain au monde, il se compose actuellement de onze lignes * desservant 267 stations nommées (strictement 269 ** stations puisque "Edgware Road" et "Hammersmith" occupent chacune deux emplacements)
Le défi
Sortez les noms des lignes desservant une station donnés par nom en entrée.
Entrée:
une chaîne ou une liste de caractères
On peut supposer qu'il s'agit d'un nom de station valide (comme indiqué dans le bloc de code ci-dessous).
Vous pouvez supposer que n'importe lequel
&
dans l'entrée sera toujours le motand
(ouAnd
) à la place si vous le souhaitez, indiquez-le clairement dans votre réponse.
Sortie: sortie
séparée répertoriant celles des onze lignes desservant cette station:
Une liste de chaînes, une liste de listes de caractères, du texte imprimé, une chaîne, une liste de caractères; en cas de doute, demandez.
Vous pouvez systématiquement sortir le mot
and
(ouAnd
) à la place de tout&
si vous le souhaitez, indiquez-le clairement dans votre réponse.Avec la mise en garde que si l'impression ou le renvoi d'une chaîne ou d'une liste de caractères que la sous-chaîne de séparation utilisée n'est présente dans aucun des noms de ligne (y compris le
&
ouand
ouAnd
utilisé) - cela exclut donc l'utilisation d'un seul caractère d'espace comme séparateur .
The Tube Network :
- Remarque: Il s'agit de l'état final, même s'il se trouve qu'il contient une faute d'orthographe (sauf si adressé avant toute réponse)
Input (Station Name) : Output (list of tube line names)
----------------------------------------------------------------------------------------------------------------
"Acton Town" : ["District","Piccadilly"]
"Aldgate" : ["Circle","Metropolitan"]
"Aldgate East" : ["District","Hammersmith & City"]
"Alperton" : ["Piccadilly"]
"Amersham" : ["Metropolitan"]
"Angel" : ["Northern"]
"Archway" : ["Northern"]
"Arnos Grove" : ["Piccadilly"]
"Arsenal" : ["Piccadilly"]
"Baker Street" : ["Bakerloo","Circle","Hammersmith & City","Jubilee","Metropolitan"]
"Balham" : ["Northern"]
"Bank" : ["Central","Northern","Waterloo & City"]
"Barbican" : ["Circle","Hammersmith & City","Metropolitan"]
"Barking" : ["District","Hammersmith & City"]
"Barkingside" : ["Central"]
"Barons Court" : ["District","Piccadilly"]
"Bayswater" : ["Circle","District"]
"Becontree" : ["District"]
"Belsize Park" : ["Northern"]
"Bermondsey" : ["Jubilee"]
"Bethnal Green" : ["Central"]
"Blackfriars" : ["Circle","District"]
"Blackhorse Road" : ["Victoria"]
"Bond Street" : ["Central","Jubilee"]
"Borough" : ["Northern"]
"Boston Manor" : ["Piccadilly"]
"Bounds Green" : ["Piccadilly"]
"Bow Road" : ["District","Hammersmith & City"]
"Brent Cross" : ["Northern"]
"Brixton" : ["Victoria"]
"Bromley-by-Bow" : ["District","Hammersmith & City"]
"Buckhurst Hill" : ["Central"]
"Burnt Oak" : ["Northern"]
"Caledonian Road" : ["Piccadilly"]
"Camden Town" : ["Northern"]
"Canada Water" : ["Jubilee"]
"Canary Wharf" : ["Jubilee"]
"Canning Town" : ["Jubilee"]
"Cannon Street" : ["Circle","District"]
"Canons Park" : ["Jubilee"]
"Chalfont & Latimer" : ["Metropolitan"]
"Chalk Farm" : ["Northern"]
"Chancery Lane" : ["Central"]
"Charing Cross" : ["Bakerloo","Northern"]
"Chesham" : ["Metropolitan"]
"Chigwell" : ["Central"]
"Chiswick Park" : ["District"]
"Chorleywood" : ["Metropolitan"]
"Clapham Common" : ["Northern"]
"Clapham North" : ["Northern"]
"Clapham South" : ["Northern"]
"Cockfosters" : ["Piccadilly"]
"Colindale" : ["Northern"]
"Colliers Wood" : ["Northern"]
"Covent Garden" : ["Piccadilly"]
"Croxley" : ["Metropolitan"]
"Dagenham East" : ["District"]
"Dagenham Heathway" : ["District"]
"Debden" : ["Central"]
"Dollis Hill" : ["Jubilee"]
"Ealing Broadway" : ["Central","District"]
"Ealing Common" : ["District","Piccadilly"]
"Earl's Court" : ["District","Piccadilly"]
"East Acton" : ["Central"]
"East Finchley" : ["Northern"]
"East Ham" : ["District","Hammersmith & City"]
"East Putney" : ["District"]
"Eastcote" : ["Metropolitan","Piccadilly"]
"Edgware" : ["Northern"]
"Edgware Road" : ["Bakerloo","Circle","District","Hammersmith & City"]
"Elephant & Castle" : ["Bakerloo","Northern"]
"Elm Park" : ["District"]
"Embankment" : ["Bakerloo","Circle","District","Northern"]
"Epping" : ["Central"]
"Euston" : ["Northern","Victoria"]
"Euston Square" : ["Circle","Hammersmith & City","Metropolitan"]
"Fairlop" : ["Central"]
"Farringdon" : ["Circle","Hammersmith & City","Metropolitan"]
"Finchley Central" : ["Northern"]
"Finchley Road" : ["Jubilee","Metropolitan"]
"Finsbury Park" : ["Piccadilly","Victoria"]
"Fulham Broadway" : ["District"]
"Gants Hill" : ["Central"]
"Gloucester Road" : ["Circle","District","Piccadilly"]
"Golders Green" : ["Northern"]
"Goldhawk Road" : ["Circle","Hammersmith & City"]
"Goodge Street" : ["Northern"]
"Grange Hill" : ["Central"]
"Great Portland Street" : ["Circle","Hammersmith & City","Metropolitan"]
"Greenford" : ["Central"]
"Green Park" : ["Jubilee","Piccadilly","Victoria"]
"Gunnersbury" : ["District"]
"Hainault" : ["Central"]
"Hammersmith" : ["Circle","District","Hammersmith & City","Piccadilly"]
"Hampstead" : ["Northern"]
"Hanger Lane" : ["Central"]
"Harlesden" : ["Bakerloo"]
"Harrow & Wealdstone" : ["Bakerloo"]
"Harrow-on-the-Hill" : ["Metropolitan"]
"Hatton Cross" : ["Piccadilly"]
"Heathrow Terminals 1, 2, 3" : ["Piccadilly"]
"Heathrow Terminal 4" : ["Piccadilly"]
"Heathrow Terminal 5" : ["Piccadilly"]
"Hendon Central" : ["Northern"]
"High Barnet" : ["Northern"]
"Highbury & Islington" : ["Victoria"]
"Highgate" : ["Northern"]
"High Street Kensington" : ["Circle","District"]
"Hillingdon" : ["Metropolitan","Piccadilly"]
"Holborn" : ["Central","Piccadilly"]
"Holland Park" : ["Central"]
"Holloway Road" : ["Piccadilly"]
"Hornchurch" : ["District"]
"Hounslow Central" : ["Piccadilly"]
"Hounslow East" : ["Piccadilly"]
"Hounslow West" : ["Piccadilly"]
"Hyde Park Corner" : ["Piccadilly"]
"Ickenham" : ["Metropolitan","Piccadilly"]
"Kennington" : ["Northern"]
"Kensal Green" : ["Bakerloo"]
"Kensington (Olympia)" : ["District"]
"Kentish Town" : ["Northern"]
"Kenton" : ["Bakerloo"]
"Kew Gardens" : ["District"]
"Kilburn" : ["Jubilee"]
"Kilburn Park" : ["Bakerloo"]
"Kingsbury" : ["Jubilee"]
"King's Cross St. Pancras" : ["Circle","Hammersmith & City","Metropolitan","Northern","Piccadilly","Victoria"]
"Knightsbridge" : ["Piccadilly"]
"Ladbroke Grove" : ["Circle","Hammersmith & City"]
"Lambeth North" : ["Bakerloo"]
"Lancaster Gate" : ["Central"]
"Latimer Road" : ["Circle","Hammersmith & City"]
"Leicester Square" : ["Northern","Piccadilly"]
"Leyton" : ["Central"]
"Leytonstone" : ["Central"]
"Liverpool Street" : ["Central","Circle","Hammersmith & City","Metropolitan"]
"London Bridge" : ["Jubilee","Northern"]
"Loughton" : ["Central"]
"Maida Vale" : ["Bakerloo"]
"Manor House" : ["Piccadilly"]
"Mansion House" : ["Circle","District"]
"Marble Arch" : ["Central"]
"Marylebone" : ["Bakerloo"]
"Mile End" : ["Central","District","Hammersmith & City"]
"Mill Hill East" : ["Northern"]
"Monument" : ["Circle","District"]
"Moorgate" : ["Circle","Hammersmith & City","Metropolitan","Northern"]
"Moor Park" : ["Metropolitan"]
"Morden" : ["Northern"]
"Mornington Crescent" : ["Northern"]
"Neasden" : ["Jubilee"]
"Newbury Park" : ["Central"]
"North Acton" : ["Central"]
"North Ealing" : ["Piccadilly"]
"North Greenwich" : ["Jubilee"]
"North Harrow" : ["Metropolitan"]
"North Wembley" : ["Bakerloo"]
"Northfields" : ["Piccadilly"]
"Northolt" : ["Central"]
"Northwick Park" : ["Metropolitan"]
"Northwood" : ["Metropolitan"]
"Northwood Hills" : ["Metropolitan"]
"Notting Hill Gate" : ["Central","Circle","District"]
"Oakwood" : ["Piccadilly"]
"Old Street" : ["Northern"]
"Osterley" : ["Piccadilly"]
"Oval" : ["Northern"]
"Oxford Circus" : ["Bakerloo","Central","Victoria"]
"Paddington" : ["Bakerloo","Circle","District","Hammersmith & City"]
"Park Royal" : ["Piccadilly"]
"Parsons Green" : ["District"]
"Perivale" : ["Central"]
"Piccadilly Circus" : ["Bakerloo","Piccadilly"]
"Pimlico" : ["Victoria"]
"Pinner" : ["Metropolitan"]
"Plaistow" : ["District","Hammersmith & City"]
"Preston Road" : ["Metropolitan"]
"Putney Bridge" : ["District"]
"Queen's Park" : ["Bakerloo"]
"Queensbury" : ["Jubilee"]
"Queensway" : ["Central"]
"Ravenscourt Park" : ["District"]
"Rayners Lane" : ["Metropolitan","Piccadilly"]
"Redbridge" : ["Central"]
"Regent's Park" : ["Bakerloo"]
"Richmond" : ["District"]
"Rickmansworth" : ["Metropolitan"]
"Roding Valley" : ["Central"]
"Royal Oak" : ["Circle","Hammersmith & City"]
"Ruislip" : ["Metropolitan","Piccadilly"]
"Ruislip Gardens" : ["Central"]
"Ruislip Manor" : ["Metropolitan","Piccadilly"]
"Russell Square" : ["Piccadilly"]
"St. James's Park" : ["Circle","District"]
"St. John's Wood" : ["Jubilee"]
"St. Paul's" : ["Central"]
"Seven Sisters" : ["Victoria"]
"Shepherd's Bush" : ["Central"]
"Shepherd's Bush Market" : ["Circle","Hammersmith & City"]
"Sloane Square" : ["Circle","District"]
"Snaresbrook" : ["Central"]
"South Ealing" : ["Piccadilly"]
"South Harrow" : ["Piccadilly"]
"South Kensington" : ["Circle","District","Piccadilly"]
"South Kenton" : ["Bakerloo"]
"South Ruislip" : ["Central"]
"South Wimbledon" : ["Northern"]
"South Woodford" : ["Central"]
"Southfields" : ["District"]
"Southgate" : ["Piccadilly"]
"Southwark" : ["Jubilee"]
"Stamford Brook" : ["District"]
"Stanmore" : ["Jubilee"]
"Stepney Green" : ["District","Hammersmith & City"]
"Stockwell" : ["Northern","Victoria"]
"Stonebridge Park" : ["Bakerloo"]
"Stratford" : ["Central","Jubilee"]
"Sudbury Hill" : ["Piccadilly"]
"Sudbury Town" : ["Piccadilly"]
"Swiss Cottage" : ["Jubilee"]
"Temple" : ["Circle","District"]
"Theydon Bois" : ["Central"]
"Tooting Bec" : ["Northern"]
"Tooting Broadway" : ["Northern"]
"Tottenham Court Road" : ["Central","Northern"]
"Tottenham Hale" : ["Victoria"]
"Totteridge & Whetstone" : ["Northern"]
"Tower Hill" : ["Circle","District"]
"Tufnell Park" : ["Northern"]
"Turnham Green" : ["District","Piccadilly"]
"Turnpike Lane" : ["Piccadilly"]
"Upminster" : ["District"]
"Upminster Bridge" : ["District"]
"Upney" : ["District"]
"Upton Park" : ["District","Hammersmith & City"]
"Uxbridge" : ["Metropolitan","Piccadilly"]
"Vauxhall" : ["Victoria"]
"Victoria" : ["Circle","District","Victoria"]
"Walthamstow Central" : ["Victoria"]
"Wanstead" : ["Central"]
"Warren Street" : ["Northern","Victoria"]
"Warwick Avenue" : ["Bakerloo"]
"Waterloo" : ["Bakerloo","Jubilee","Northern","Waterloo & City"]
"Watford" : ["Metropolitan"]
"Wembley Central" : ["Bakerloo"]
"Wembley Park" : ["Jubilee","Metropolitan"]
"West Acton" : ["Central"]
"West Brompton" : ["District"]
"West Finchley" : ["Northern"]
"West Ham" : ["District","Hammersmith & City","Jubilee"]
"West Hampstead" : ["Jubilee"]
"West Harrow" : ["Metropolitan"]
"West Kensington" : ["District"]
"West Ruislip" : ["Central"]
"Westbourne Park" : ["Circle","Hammersmith & City"]
"Westminster" : ["Circle","District","Jubilee"]
"White City" : ["Central"]
"Whitechapel" : ["District","Hammersmith & City"]
"Willesden Green" : ["Jubilee"]
"Willesden Junction" : ["Bakerloo"]
"Wimbledon" : ["District"]
"Wimbledon Park" : ["District"]
"Wood Green" : ["Piccadilly"]
"Wood Lane" : ["Circle","Hammersmith & City"]
"Woodford" : ["Central"]
"Woodside Park" : ["Northern"]
... les onze noms de ligne sont:
Bakerloo
Central
Circle
District
Hammersmith & City
Jubilee
Metropolitan
Northern
Piccadilly
Victoria
Waterloo & City
* Les transports pour Londres gèrent également d'autres lignes de train, certains peuvent également être désignés comme faisant partie de "The Tube" (probablement le "Docklands Light Railway" ou "DLR"), mais nous nous en tiendrons aux onze énumérés ici.
** La page Wikipedia liée indique actuellement 270, mais je pense qu'ils comptent par erreur le deuxième emplacement de Canary Wharf même s'il ne dessert que le "DLR")
Des tas de points de brownie imaginaires (et très probablement beaucoup de votes positifs aussi) pour une soumission golfée en utilisant Mornington Crescent (un IDE compatible est disponible ici )!
Il s'agit de code-golf , donc le code le plus court en octets gagne par langue et la solution la plus courte gagne (ne laissez pas les langues de golf vous décourager de jouer dans d'autres langues). S'amuser!
la source
Réponses:
Mathematica 8+, 266 octets
Cette solution avait à l'origine le même nombre d'octets que de stations. Je suppose qu'il pourrait être joué sur 50 autres octets, mais cela semblait être un endroit approprié pour s'arrêter pour l'instant.
introduction
Mathematica est bien connu pour sa grande bibliothèque standard et son accès à une grande "base de connaissances informatique" en ligne. J'ai effrontément fouillé Wolfram | Alpha dans l'espoir de trouver facilement les données de transit pertinentes, mais bien qu'il comprenne le domaine de ma requête, les données ne sont pas encore disponibles .
Heureusement, la vaste documentation intégrée de Mathematica est fournie avec des exemples intéressants. Il se trouve que plusieurs de ces pages utilisent le réseau du métro de Londres pour démontrer les fonctionnalités liées aux graphiques. Nous utiliserons le graphique de l' exemple présenté "Planification de voyage" en raison de son nom court.
Voici d'autres utilisations intéressantes du même réseau .
Je ne pense pas que l'accès par programmation à la documentation de Mathematica tombe dans les failles de type "Récupération à partir d'une source externe" .
Importez la page d'exemple
Nous pouvons importer l'exemple de page en tant qu'expression de bloc - notes :
Il est possible d'extraire le graphique entier du plus profond de l'expression du carnet:
Notez que les sommets du graphique ne sont que les noms des stations. Les bords ont une
"Lines"
propriété personnalisée qui est une liste de chaînes représentant les lignes qui passent entre ses deux stations:Maintenant, nous pourrions trouver toutes les lignes passant par un sommet en obtenant toutes ses arêtes incidentes
IncidenceList[g, vertex]
, en mappantPropertyValue[{g, edge}, "Lines"]
, etc.Cependant, nous allons ignorer la méthode ci-dessus et enregistrer de nombreux octets par correspondance de modèle pour la partie pertinente du
Graph
constructeur - l'Properties
option.Extraire les lignes
Le
Graph
constructeur a le format suivant:(Vous pouvez le voir en inspectant
FullForm[g]
ou en lisant le code source deTripPlanning.nb
- pour son chemin complet, exécutezFindFile["ExamplePages/TripPlanning.nb"]
.)Voici un exemple d'une propriété de bord:
Transformons cette expression en un modèle compact:
Faire une table de correspondance
Maintenant , nous pouvons répondre
v1
,v2
etlines
, mais nous voulons{v1 -> lines, v2 -> lines}
. Utile,Cases
peut simultanément correspondre à un modèle et le transformer.Cela produit une liste du formulaire
{{v1 -> lines, v2 -> lines}, {v1 -> lines, v3 -> lines}, ...}
. Enfin, nous fusionnons la liste par sommet:En moins de 90 octets, nous avons produit une table de recherche presque parfaite pour les lignes de chaque station.
Corriger les fautes de frappe
Malheureusement, certains noms de stations sont mal orthographiés ou manquants.
L'appariement de chaînes floues doit prendre en charge les fautes de frappe. Nous pouvons trouver le
Nearest
nom de la station mal orthographié au nom de la station d'entrée:Remplacez les entrées de
"Wood Lane"
et"Shepherd's Bush Market"
(nouvelles stations) par"Royal Oak"
, car ces trois stations partagent les mêmes lignes:Composez ces fonctions pour obtenir le faux nom de la station, recherchez ses lignes dans le tableau et stockez-les dans
r
:Correction obsolète
Le réseau est également légèrement dépassé en raison de la refonte de Circle Line.
Si la station d'entrée est
"Hammersmith"
ou si la table de recherche ne renvoie que{"Hammersmith & City"}
, ajoutez-la"Circle"
aux lignes.Supprimer les lignes étrangères
Le graphique contient des lignes qui ne nous intéressent pas, alors supprimez-les:
C'est ça!
Essayez! (avec solutions de contournement)
Si vous voulez jouer avec ma solution mais n'avez pas Mathematica, vous pouvez utiliser le Wolfram Programming Cloud gratuit. Allez ici , cliquez
Create a New Notebook
, puis attendez un instant.Malheureusement, la plate-forme a certaines limites qui empêchent mon code d'importation de bloc-notes de fonctionner. Voici quelques solutions de contournement grossières:
Étant donné que la page d'exemple n'est pas là, nous pouvons essayer d'abuser de la fonction de copie d'entrée dans le presse-papiers de la documentation en ligne. J'ai utilisé les outils de développement de mon navigateur et j'ai vu qu'une demande a été faite à
http://reference.wolfram.com/language/example/Files/TripPlanning.en/i_1.txt
(avertissement: grand). Cependant, le proxy de la plate-forme ne résout pas le domainereference.wolfram.com
, je l'ai donc fait manuellement.Collez-le d'abord et appuyez sur shift+enterpour exécuter. Remplacez maintenant
<<ExamplePages/TripPlanning.nb
pargWorkaround
.Données de test
Appelez la fonction
f
et testez-la sur les données données:la source
ES6, Node.js / Chrome,
989977931892889887 octetsSuite de tests complète (Node.js)
Essayez-le en ligne!
Démo (Chrome)
NB : En raison d'incohérences dans la mise en œuvre de plusieurs
parseInt()
navigateurs (1) , cela ne fonctionne que pour toutes les stations sur Chrome.Afficher l'extrait de code
(1) D'après la spécification : Soit mathInt la valeur mathématique entière qui est représentée par Z en notation radix-R [...]. Si R n'est pas 2, 4, 8, 10, 16 ou 32, alors mathInt peut être une approximation dépendante de l'implémentation de la valeur entière mathématique représentée par Z dans la notation radix-R.
Comment?
Voici un exemple de décodage étape par étape pour l'entrée
s = "St. James's Park"
.Étape 1
Nous gonflons d'abord la table de recherche principale (de 503 à 2 328 octets) en développant tous ses caractères de remplissage. Ces caractères sont codés avec un code ASCII supérieur à 92, tandis que les données de charge utile utilisent la plage 48-90.
Étape 2
Nous supprimons tous les caractères non alphabétiques de la chaîne d'entrée:
qui donne
"StJamessPark"
.Étape 3
Nous analysons la chaîne résultante comme une quantité en base 36:
ce qui donne
3793395908848905700
(c'est le résultat approximatif renvoyé par Chrome V8 ).Étape 4
Nous calculons la valeur de hachage:
ce qui donne
533
.NB : En raison de la perte de précision, ce résultat n'est pas mathématiquement correct (il devrait l'être
184
). Mais la table de recherche a été - bien sûr - construite de la même manière, c'est donc celle que nous attendons.Étape # 5
Nous récupérons le code ASCII du caractère à cette position dans la table de recherche principale:
ce qui donne
58
(c'est le personnage':'
).Étape # 6
Nous utilisons cette valeur pour extraire une chaîne de 2 caractères de la table de recherche secondaire:
ce qui donne
0c
.Étape # 7
Nous analysons cette chaîne comme une quantité en base 36:
ce qui donne
12
.Étape # 8
Enfin, nous filtrons la liste des stations en fonction des bits définis
msk
, en commençant par le moins significatif:Dans notre exemple,
msk
détient12
, qui est00000001100
en binaire. Donc , nous gardons les 3e et 4e stations, ce qui conduit au résultat final:[ 'Circle', 'District' ]
.la source
Northern
.Kotlin ,
2271227020001694 octetsEmbellie
Tester
Modifications
Séparateurs de tuyaux inutiles supprimés -270 octets
Compressé avec des outils zip -306 octets
la source
Python 2 ,
230923012218 octetsEssayez-le en ligne!
-6 grâce à M. Xcoder .
Trop longtemps ... c'est peut-être jouable au golf.
la source
Gomme de cannelle , 2100 octets
Hexdump:
Essayez-le en ligne!
Je ne doute pas que cela puisse être joué beaucoup plus, le problème est le manque de documentation complète de Cinnamon Gum. (@quartata pls cela a de grandes chances d'être incroyable troll lang) Je pourrais fouiller dans le code source pour voir s'il y a quelque chose qui peut être bénéfique à cela.
Il s'agit du script Python que j'ai piraté ensemble pour générer la chaîne compressée.
la source
PHP,
178517801471 octetsEmbellie
Explication
Pour distinguer le nom de la station avec aussi peu de caractères que possible, j'ai un peu tripoté et découvert que si je prenais les 22e, 23e et 24e caractères du hachage MD5, ce serait unique, sauf pour UNE collision:
ddb
pourrait représenterHeathrow Terminals 1, 2, 3
aussi bien que pourDagenham Heathway
.Pour faire référence aux 11 noms de ligne de tube, j'utilise simplement un chiffre hexidécimal de 0 à A.
Ensuite, j'ai créé une liste séparée par des virgules des sous-chaînes de hachage MD5, avec les chiffres de ligne de tube correspondants à côté. Mais j'ai laissé de côté
Heathrow Terminals 1, 2, 3
pour éviter la collision.Exemple:
fe538
signifie que quelle que soit la station dont le nom est md5 ait les caractèresfe5
aux 22e, 23e et 24e places, exécute les lignes de tube désignées par3
et8
. Signification desActon Town
lignes de tubeDistrict
etPiccadilly
.J'ai ensuite écrit une fonction simple qui vérifie l'entrée. MD5 le hache. Prend les 22e, 23e et 24e caractères. Correspond à la liste que j'ai créée. Et affiche les noms des tubes correspondants. Avec l'expectation
ddb
bien sûr, qui est codée en durPiccadilly
, lorsque la chaîne donnée commence par unH
.Modifications
array()
par[]
-5 caractèreseval(gzinflate(base64_decode()))
pour -309 caractèresla source
Python 2 ,
143014181416 octetsEssayez-le en ligne!
Explication L'entrée est codée sous forme de représentation binaire (code ASCII 8 bits pour chaque lettre du mot d'entrée) lorsque vous complétez le mot d'entrée par des espaces à droite si la longueur du mot est inférieure à 26. J'ai déjà fait la même représentation pour toutes les entrées possibles et trouver les bits minimaux qui différencient les sorties. Le code examine ces bits spécifiques pour décider de la sortie.
la source
s=(s+' '*22)[:26]
au lieu des+=' '*(26-len(s))
.n=0
newlinefor e in(input()+' '*26)[:26]:n=n*256+ord(e)
. Deux de plus en utilisantn=i=0
aussi en haut.SyntaxError: Non-ASCII character...
lorsque j'essaie de le faire) - pourrait avoir besoin d'un en-tête de codage ou quelque chose.Jotlin 1.0 , 1539 octets
Soumission
Code de test
la source