Il est temps pour une autre pratique Pyth. Je présente ici 8 énoncés de problèmes avec une solution Pyth chacun. Ces solutions sont écrites par un débutant Pyth. Il est assez content de ces solutions, car elles sont beaucoup plus courtes que ses réponses Python. Votre tâche est cependant de lui montrer mieux. Créez des programmes équivalents mais plus courts.
Il s'agit d'un défi concernant les astuces et les optimisations qui peuvent être utilisées lors du golf en Pyth. Les golfeurs Pyth peuvent reconnaître plusieurs des tours impliqués, qui mènent à des solutions plus courtes. Cependant, certains problèmes nécessiteront des approches inhabituelles qui sont rarement utilisées. Certaines des astuces que je n'ai jamais vues dans la nature. Mais aucune solution ne nécessite de bugs ou de comportements étranges, ce qui n'était pas intentionnel de la part des concepteurs de Pyth. Toutes les réponses doivent être valides pour la validation Pyth la plus récente ( 2b1562b ) à compter de la publication de cette question. Vous pouvez utiliser l' interpréteur Pythpour tester. Il est à jour en ce moment et je ne m'attends pas à de grands changements dans Pyth, qui invalideront des solutions optimales ou rendront des solutions plus courtes possibles. L'interpréteur en ligne propose également la nouvelle référence de personnage. Comme il est assez nouveau, vous pouvez (devriez) également utiliser les anciens documents , au cas où quelque chose est incorrect ou manquant.
Objectif: Les solutions de référence totalisent 81 octets. Votre objectif est de battre autant que possible. La soumission qui résout les 8 problèmes avec le plus petit nombre total d'octets gagne. Tiebreaker est la date de soumission.
Bien sûr, seules les soumissions sont valides, qui contiennent des solutions pour les 8 problèmes. Vous pouvez utiliser l'implémentation de référence, si vous ne pouvez pas améliorer le score d'un (ou plusieurs) problème particulier.
Vos solutions doivent imprimer exactement la même sortie que les solutions de référence. À l'exception d'une nouvelle ligne de fin facultative.
Comme il s'agit d'une pratique Pyth, seuls les programmes écrits dans le langage Pyth sont autorisés.
Réponse: Veuillez gâcher votre réponse entière, à l'exception de votre score total. Il est prévu que vous ne regardiez pas les réponses des autres avant de soumettre les vôtres. Vous pouvez créer des spoilers en mettant>! devant chaque ligne, comme:
>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...
J'espère que je n'ai pas choisi de problèmes trop difficiles ou trop triviaux. En espérant que beaucoup de participants et que tout le monde acquière quelques nouvelles perspectives sur Pyth. Bon golf!
Problème 1:
Créez la matrice 9x9 suivante et imprimez-la:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 9]
Solution de référence ( Lien ):
V9m?>dNd0S9 (11 bytes)
Problème 2:
Imprimez tous les chiffres et toutes les lettres sur des lignes distinctes:
0
...
9
a
...
z
Solution de référence ( Lien ):
VTN)VGN (7 bytes)
Problème 3:
Recherchez le palindrome lexicographiquement le plus petit, qui est lexicographiquement plus grand ou égal à une chaîne d'entrée contenant des lettres minuscules et est identique à la chaîne d'entrée.
a -> a
abc -> aca
adcb -> adda
Solution de référence ( Lien ):
hf&gTzqT_T^Glz (14 bytes)
Problème 4:
Vérifiez si un nombre est dans la plage [0, entrez le numéro). Cela devrait également fonctionner pour les flotteurs.
4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True
Solution de référence ( Lien ):
&gQ0<QE (7 bytes)
Le format de référence est to be tested value<newline>end value
. Vous pouvez cependant choisir un format d'entrée différent. L'important est seulement que vous accomplissiez l'énoncé du problème et produisiez les résultats corrects.
Problème 5:
Analyser une chaîne d'entrée au format "\ d + [a-zA-Z] +". Notez que le nombre doit vraiment être un nombre, pas une chaîne contenant des chiffres.
'123Test' -> [123, 'Test']
Solution de référence ( Lien ):
A.ggk\Az,sGH (12 bytes)
Problème 6:
Calculez la somme des nombres, séparés par une ou plusieurs virgules. Vous pouvez supposer qu'il existe au moins un nombre dans la chaîne.
11,2,,,3,5,,8 -> 29
Solution de référence ( Lien ):
svM:z",+"3 (10 bytes)
Problème 7:
Lisez les entiers positifs de l'entrée jusqu'à ce que vous obteniez le nombre 0. Imprimez la somme de tous les nombres.
Solution de référence ( Lien ):
WJE=+ZJ)Z (9 bytes)
Problème 8:
Résumez tous les éléments d'une matrice carrée, à l'exception de ceux de la diagonale principale (du coin supérieur gauche au coin inférieur droit).
Solution de référence ( Lien ):
-ssQs.e@bkQ (11 bytes)