/* Configuration */
var QUESTION_ID = 181627; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 8478; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
else console.log(body);
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
lang = jQuery('<a>'+lang+'</a>').text();
languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang_raw.toLowerCase() > b.lang_raw.toLowerCase()) return 1;
if (a.lang_raw.toLowerCase() < b.lang_raw.toLowerCase()) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body {
text-align: left !important;
display: block !important;
}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 500px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/codegolf/all.css?v=ffb5d0584c5f">
<div id="language-list">
<h2>Shortest Solution by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
Réponses:
Attaché , 4 octets
Essayez-le en ligne! (Si l'entrée peut être une liste de caractères, cela
&/S
peut fonctionner.)Alternatives
5 octets:
`@&-1
8 octets:
&/S@List
10 octets:
`@«_,-1»
10 octets:
Fold!Right
10 octets:
`@<~_,-1~>
10 octets:
`^^&:Right
10 octets:
{Right^^_}
11 octets:
Get«_,-1»
11 octets:
Get<~_,-1~>
12 octets:
`@«_,#_-1»
12 octets:
`@<~_,#_-1~>
13 octets:
Get«_,#_-1»
13 octets:
Get<~_,#_-1~>
la source
Last
octet entré. Le contenu des programmes correspond au déficode machine x86-16, 2 octets
Comme le souligne @CodyGray correctement, prendre l'entrée en tant que chaîne et la sortie dans un registre supprime la majeure partie de la version du programme autonome.
La chaîne d'entrée est en
SI
, la longueur enCX
et le caractère de sortie est enAL
:Ou 4 octets sous forme de "chaîne Pascal" (la longueur est ajoutée au début de la chaîne):
Ou 5 octets sous forme de "chaîne C" (terminée par zéro / nul), saisissez
DI
:code machine x86-16, IBM PC DOS,
121110 octetsOu programme aussi complet que l'exécutable IBM PC DOS. L'entrée provient de la ligne de commande, la sortie est de la console.
Production:
la source
SI
, la longueur dans le caractère deCX
sortie est dansAL
" et ensuite je pense que le seul code qui serait nécessaire estREPZ LODSB
(2 octets) et nous aurions terminé. Bien sûr, cette approche ne serait pas la façon dont vous le faites si vous codiez pour l'efficacité, pas pour la taille. Votre point est très bien pris cependant, je le posterai aussi comme une fonction qui fait la viande du travail.Brainf ***, 7 octets
la source
-1
l'EOF.+[>,+]<-.
devrait fonctionnerMATL, 2 octets
MATL utilise une indexation modulaire basée sur 1, de sorte que cette solution saisit l'élément en
0
position -th de l'entrée qui est la même que la dernière depuis le0
bouclage jusqu'à la fin.Essayez-le sur MATL Online
Explication
la source
J)
...PHP , 13 octets
Essayez-le en ligne!
Exécuter avec
php -nF
entrée est STDIN. Exemple:la source
Javascript, 14 octets
la source
[0]
. Ou peut-être s'il existe un moyen court d'obtenir la longueur du tableau. Approche différente:a=>[...a].pop()
(15 octets)Python 3 , 14 octets
Essayez-le en ligne!
la source
e
dans l'en-tête). Pour votre deuxième question, l'en-tête este=\
, ce qui signifie essentiellemente=lambda x:x[-1]
e=\
mais Markdown échappe au caractère de code, donc je dois ajouter un espace de finBash + coreutils, 8 octets
L'entrée est de stdin, la sortie est de stdout.
la source
TI-BASIC (TI-84), 10 octets
Obtient le dernier caractère de la chaîne d'entrée.
L'entrée est en
Ans
.La sortie est
Ans
entrée et est automatiquement imprimée.la source
Haskell ,
94 octetsEssayez-le en ligne!
la source
pure
? Ça nelast
suffit pas ?Graine , 11 octets
Essayez-le en ligne!
Le programme Befunge-98 résultant a
~2j@,
étévoléemprunté à Jo King ici , alors merci à eux pour cela.la source
Java 8
Entrée depuis STDIN, 71 octets
Essayez-le en ligne!
Argument de fonction, 25 octets
la source
s->s[s.length-1]
cela aurait suffi avec unchar[]
type de paramètre.> <> , 2 octets
Utilisation des arguments de ligne de commande
Essayez-le en ligne!
> <> , 11 octets
Utilisation de stdin
Essayez-le en ligne!
la source
Cubix , 6 octets
Essayez-le en ligne!
Regardez-le courir
A
Prend toutes les entrées/
Rediriger autour du cubepp
ramener le bas de la pile au sommet deux foiso/@
sortie en tant que caractère, rediriger et arrêterla source
Befunge-93 , 12
15octetsEssayez-le en ligne!
Merci à @Jo King d'avoir joué au golf sur 3 octets.
Version alternative de 15 octets moins salissante:
La prise de chaînes en entrée dans Befunge n'est pas la plus simple. S'il y avait une seule commande pour saisir plusieurs caractères, ce serait aussi simple que de lire la chaîne, de sauter / imprimer le premier caractère et de quitter.
la source
$$
au lieu dep1
devrait fonctionner sans avertissement pour le même nombre d'octetsTuring Machine But Way Pire , 391 bytes
Essayez-le en ligne!
EXPLICATION
la source
Gelée , 1 octet
Essayez-le en ligne!
Pas le défi le plus difficile de Jelly ...
Notez que cela accepte l'entrée en tant que chaîne; si l'entrée peut être interprétée autrement (par exemple un nombre, une liste), alors l'argument devra être cité (par exemple "123456" ou "[123,197]"). Alternativement, cela peut être vu comme un lien qui prend un tableau d'octets et renvoie le dernier membre de ce tableau, conformément aux règles standard de PPCG.
Merci à @ MilkyWay90 et @ ბიმო de l'avoir signalé.
la source
Excel, 10 octets
À peu près équivalent à la réponse VBA de @ remoel:
la source
Cascade , 9 octets
Assez satisfait de cela, car il ne fait que 3 octets de plus que mon programme de chat
Étendu
Cela passe essentiellement en boucle en poussant les caractères d'entrée dans la
a
pile jusqu'à ce que EOF soit atteint. Ensuite, il sort l'élément en haut de laa
pile en utilisant.a
.Essayez-le en ligne!
la source
PowerShell, 11 octets
Essayez-le en ligne!
la source
SmileBASIC, 16 octets
la source
05AB1E , 1 octet
Essayez-le en ligne!
θ
ou`
fonctionnerait également.la source
Brindille, 37 octets
Cela utilise simplement une approche "extraire 1 caractère de la fin et l'imprimer".
C'était vraiment facile à faire et à tester, mais c'était amusant!
Pour l'utiliser, vous devez le mettre dans un
.twig
fichier et l'importer:Vous pouvez le tester sur https://twigfiddle.com/aa19wd (mallettes de test incluses)
la source
Bash, 13 octets
la chaîne est passée en argument.
Essayez-le en ligne!
la source
Emotion , 5 octets
Explication
Essayez-le en ligne!
la source
VBA (Excel),
1412 octetsutilisation de la fenêtre immédiate et de la cellule
A1
comme entréeMerci @tsh
?[RIGHT(A1)]
ou?Right([A1],1)
la source
1
facultatif?Python 3,
111834 octetsUtilisation via l'exécution du programme en tant que script python sur la ligne de commande. L'entrée est fournie comme dernier argument du programme.
Essayez-le en ligne!
la source
Formule IBM / Lotus Notes, 11 octets
Formule de champ calculée prenant son entrée dans un champ modifiable
i
la source
Code de la machine de Turing,
7242 octetsSuppose une entrée sans cellules vides (espaces). Merci à ASCII uniquement pour avoir économisé 30 octets.
Ancienne version en 72 octets:
Essayez-le en ligne .
la source
0 * * r 1/1 * * l 2/1 _ _ l halt/2 * _ r 0
?C # 8.0 , 8 octets
Nécessite .NET Core 3.0, qui est en version bêta. Cela plante actuellement le CLR en raison d'un bogue, mais une fois le bogue corrigé, cela fonctionnera comme prévu et répondra aux exigences du défi.
s=>s[^1]
C # 8.0 , s'exécute sans se bloquer au moment de l'écriture, 22 octets
s=>s.ToCharArray()[^1]
C # 8.0 , programme complet, 78 octets
using C=System.Console;class A{static void Main(){C.Write(C.ReadLine()[^1]);}}
la source
array[^n]
array[array.Length - n]