/* 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>
Respuestas:
Adjunto , 4 bytes
Pruébalo en línea! (Si la entrada pudiera ser una lista de caracteres,
&/S
podría funcionar).Alternativas
5 bytes:
`@&-1
8 bytes:
&/S@List
10 bytes:
`@«_,-1»
10 bytes:
Fold!Right
10 bytes:
`@<~_,-1~>
10 bytes:
`^^&:Right
10 bytes:
{Right^^_}
11 bytes:
Get«_,-1»
11 bytes:
Get<~_,-1~>
12 bytes:
`@«_,#_-1»
12 bytes:
`@<~_,#_-1~>
13 bytes:
Get«_,#_-1»
13 bytes:
Get<~_,#_-1~>
fuente
Last
byte ingresado. El contenido del programa encaja con el desafíoCódigo de máquina x86-16, 2 bytes
Como @CodyGray señala correctamente, tomar la entrada como una cadena y la salida a un registro elimina la mayor parte de la versión del programa independiente.
La cadena de entrada está adentro
SI
, la longitud adentroCX
y el carácter de salida está adentroAL
:O 4 bytes como una "cadena Pascal" (la longitud se antepone al comienzo de la cadena):
O 5 bytes como una "cadena C" (cero / nulo terminado), ingrese
DI
:Código de máquina x86-16, IBM PC DOS,
121110 bytesO un programa tan completo como el ejecutable de IBM PC DOS. La entrada es desde la línea de comando, la salida es a la consola.
Salida:
fuente
SI
, length inCX
output char is inAL
" y luego creo que el único código que sería necesario esREPZ LODSB
(2 bytes) y ya estaríamos listos. Por supuesto, este enfoque no sería cómo lo haría si estuviera codificando la eficiencia, no el tamaño. Sin embargo, su punto está muy bien tomado, lo publicaré también como una función que hace la carne del trabajo.Brainf ***, 7 bytes
fuente
-1
como EOF.+[>,+]<-.
debería funcionarMATL, 2 bytes
MATL utiliza la indexación modular basada en 1, por lo que esta solución toma el elemento en la
0
posición -th de la entrada, que es la misma que la última desde que se0
ajusta hasta el final.Pruébelo en MATL Online
Explicación
fuente
J)
PHP , 13 bytes
Pruébalo en línea!
Ejecutar con
php -nF
entrada es STDIN. Ejemplo:fuente
Javascript, 14 bytes
fuente
[0]
. O tal vez si hay una forma corta de obtener la longitud de la matriz. Enfoque diferente:a=>[...a].pop()
(15bytes)Python 3 , 14 bytes
Pruébalo en línea!
fuente
e
en el encabezado). Para su segunda pregunta, el encabezado ese=\
, lo que básicamente significae=lambda x:x[-1]
e=\
pero de rebajas escapa el carácter de código de modo que tengo que añadir un espacio al finalBash + coreutils, 8 bytes
La entrada es desde stdin, la salida es hacia stdout.
fuente
TI-BASIC (TI-84), 10 bytes
Obtiene el último carácter en la cadena de entrada.
La entrada está adentro
Ans
.La salida está adentro
Ans
y se imprime automáticamente.fuente
Haskell ,
94 bytesPruébalo en línea!
fuente
pure
? ¿No eslast
suficiente?Semilla , 11 bytes
Pruébalo en línea!
El programa Befunge-98 resultante
~2j@,
fuerobadoprestado de Jo King aquí , así que acépteles por eso.fuente
Java 8
Entrada desde STDIN, 71 bytes
Pruébalo en línea!
Argumento de función, 25 bytes
fuente
s->s[s.length-1]
habría sido suficiente con unchar[]
tipo de parámetro.> <> , 2 bytes
Usar argumentos de línea de comando
Pruébalo en línea!
> <> , 11 bytes
Usando stdin
Pruébalo en línea!
fuente
Cubix , 6 bytes
Pruébalo en línea!
Míralo correr
A
Toma toda la entrada/
Redireccionar alrededor del cubopp
lleva el fondo de la pila a la parte superior dos veceso/@
salida como personaje, redirigir y detenerfuente
Befunge-93 , 12
15bytesPruébalo en línea!
Gracias a @Jo King por jugar 3 bytes.
Versión alternativa de 15 bytes que es menos desordenada:
Tomar cadenas como entrada en Befunge no es la más fácil. Si hubiera un solo comando para tomar varios caracteres, sería tan simple como leer la cadena, hacer estallar / imprimir el carácter superior y salir.
fuente
$$
lugar dep1
funcionar sin la advertencia por la misma cantidad de bytesMáquina de Turing pero mucho peor , 391 bytes
Pruébalo en línea!
EXPLICACIÓN
fuente
Jalea , 1 byte
Pruébalo en línea!
No es el desafío más difícil en Jelly ...
Tenga en cuenta que esto acepta la entrada como una cadena; si la entrada puede interpretarse de otra manera (por ejemplo, un número, una lista), entonces el argumento deberá ser citado (por ejemplo, "123456" o "[123,197]"). Alternativamente, esto puede verse como un enlace que toma una matriz de bytes y devuelve el último miembro de esa matriz, de acuerdo con las reglas estándar de PPCG.
Gracias a @ MilkyWay90 y @ ბიმო por señalar esto.
fuente
Excel, 10 bytes
Más o menos equivalente a la respuesta VBA de @ remoel:
fuente
Cascada , 9 bytes.
Muy contento con esto, ya que es solo 3 bytes más largo que mi programa cat
Expandido
Básicamente, esto solo pasa a través de la inserción de caracteres de entrada en la
a
pila hasta que se alcanza EOF. Luego genera el elemento en la parte superior de laa
pila usando.a
.Pruébalo en línea!
fuente
PowerShell, 11 bytes
Pruébalo en línea!
fuente
SmileBASIC, 16 bytes
fuente
05AB1E , 1 byte
Pruébalo en línea!
θ
o`
también funcionaría.fuente
Ramita, 37 bytes
Esto solo usa un enfoque simple "extraer 1 carácter del final e imprimirlo"
Fue realmente fácil de hacer y probar, ¡pero fue divertido!
Para usarlo, debe colocarlo en un
.twig
archivo e importarlo:Puede probarlo en https://twigfiddle.com/aa19wd (casos de prueba incluidos)
fuente
Bash, 13 bytes
la cadena se pasa como argumento.
Pruébalo en línea!
fuente
Emoción , 5 bytes
Explicación
Pruébalo en línea!
fuente
VBA (Excel),
1412 bytesusando la ventana inmediata y la celda
A1
como entradaGracias @tsh
?[RIGHT(A1)]
o?Right([A1],1)
fuente
1
opcional?Python 3,
1118 años34 bytesUso mediante la ejecución del programa como un script de Python en la línea de comando. La entrada se proporciona como el último argumento para el programa.
Pruébalo en línea!
fuente
Fórmula IBM / Lotus Notes, 11 bytes
Fórmula de campo calculada que toma su entrada del campo editable
i
fuente
Código de máquina de Turing,
7242 bytesAsume una entrada sin celdas vacías (espacios). Gracias a ASCII-only por guardar 30 bytes.
Versión anterior en 72 bytes:
Pruébalo en línea .
fuente
0 * * r 1/1 * * l 2/1 _ _ l halt/2 * _ r 0
?C # 8.0 , 8 bytes
Requiere .NET Core 3.0, que está en beta. Esto actualmente bloquea el CLR debido a un error, pero una vez que se soluciona, se ejecutará como se esperaba y cumplirá los requisitos de desafío.
s=>s[^1]
C # 8.0 , se ejecuta sin fallar al momento de escribir, 22 bytes
s=>s.ToCharArray()[^1]
C # 8.0 , Programa completo, 78 bytes
using C=System.Console;class A{static void Main(){C.Write(C.ReadLine()[^1]);}}
fuente
array[^n]
es el mismo quearray[array.Length - n]