/* 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>
Respostas:
Anexo , 4 bytes
Experimente online! (Se a entrada puder ser uma lista de caracteres,
&/S
poderá 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~>
fonte
Last
byte inserido. Os programas de conteúdos se encaixam com o desafiocódigo de máquina x86-16, 2 bytes
Como o @CodyGray aponta corretamente, levar a entrada como uma string e a saída para um registro remove a maior parte da versão do programa independente.
A string de entrada está dentro
SI
, o comprimentoCX
e o caractere de saída estão emAL
:Ou 4 bytes como uma "string Pascal" (o comprimento é precedido do início da string):
Ou 5 bytes como uma "sequência C" (zero / nulo terminado), insira
DI
:código de máquina x86-16, IBM PC DOS,
121110 bytesOu um programa tão completo quanto o executável do IBM PC DOS. A entrada é da linha de comando, a saída é para o console.
Resultado:
fonte
SI
, comprimento naCX
saída charAL
" e então acho que o único código necessário seriaREPZ LODSB
(2 bytes) e estaríamos prontos. É claro que essa abordagem não seria como você faria se estivesse codificando eficiência, não tamanho. Porém, seu ponto de vista está muito bem entendido, vou postá-lo também como uma função que faz a carne do trabalho.Brainf ***, 7 bytes
fonte
-1
como EOF.+[>,+]<-.
deve trabalharMATL, 2 bytes
O MATL usa indexação modular com base em 1, de modo que esta solução agarra o elemento na
0
-ésima posição da entrada, que é a mesma que a anterior, desde a0
volta ao final.Experimente no MATL Online
Explicação
fonte
J)
...PHP , 13 bytes
Experimente online!
Executar com
php -nF
entrada é STDIN. Exemplo:fonte
Javascript, 14 bytes
fonte
[0]
. Ou talvez se houver uma maneira curta de obter o comprimento da matriz. Abordagem diferente:a=>[...a].pop()
(15bytes)Python 3 , 14 bytes
Experimente online!
fonte
e
no cabeçalho). Para sua segunda pergunta, o cabeçalho ée=\
, o que basicamente significae=lambda x:x[-1]
e=\
, mas Markdown escapa o caráter de código então eu tenho que adicionar um espaço à direitaBash + coreutils, 8 bytes
A entrada é de stdin, a saída é para stdout.
fonte
TI-BASIC (TI-84), 10 bytes
Obtém o último caractere na sequência de entrada.
A entrada é no
Ans
.A saída está dentro
Ans
e é automaticamente impressa.fonte
Haskell ,
94 bytesExperimente online!
fonte
pure
? Não élast
suficiente?Semente , 11 bytes
Experimente online!
O programa Befunge-98 resultante
~2j@,
foiroubadoemprestado de Jo King aqui , então lhes agradecemos por isso.fonte
Java 8
Entrada de STDIN, 71 bytes
Experimente online!
Função Argumento, 25 bytes
fonte
s->s[s.length-1]
seria suficiente com umchar[]
tipo de parâmetro.> <> , 2 bytes
Usando args da linha de comando
Experimente online!
> <> , 11 bytes
Usando stdin
Experimente online!
fonte
Cubix , 6 bytes
Experimente online!
Assista correr
A
Toma toda a entrada/
Redirecionar ao redor do cubopp
traga o fundo da pilha para o topo duas vezeso/@
saída como caractere, redirecionar e pararfonte
Befunge-93 , 12
15bytesExperimente online!
Obrigado a @Jo King por jogar fora 3 bytes.
Versão alternativa de 15 bytes que é menos confusa:
Tomar seqüências de caracteres como entrada no Befunge não é o mais fácil. Se houvesse um único comando para receber vários caracteres, seria tão simples quanto ler a sequência, exibir / imprimir o caractere superior e sair.
fonte
$$
em vez dep1
deve funcionar sem o aviso para a mesma quantidade de bytesMáquina de Turing, mas muito pior , 391 bytes
Experimente online!
EXPLICAÇÃO
fonte
Geléia , 1 byte
Experimente online!
Não é o desafio mais difícil em Jelly ...
Observe que isso aceita a entrada como uma string; se a entrada puder ser interpretada de outra forma (por exemplo, um número, uma lista), o argumento precisará ser citado (por exemplo, "123456" ou "[123,197]"). Como alternativa, isso pode ser visto como um link que pega uma matriz de bytes e retorna o último membro dessa matriz, de acordo com as regras padrão do PPCG.
Obrigado a @ MilkyWay90 e @ ბიმო por apontar isso.
fonte
Excel, 10 bytes
Praticamente equivalente à resposta VBA do @ remoel:
fonte
Cascata , 9 bytes
Muito feliz com isso, pois é apenas 3 bytes mais longo que o meu programa para gatos
Expandido
Isso basicamente faz um loop através do envio de caracteres de entrada para a
a
pilha até que o EOF seja alcançado. Em seguida, ele gera o item no topo daa
pilha usando.a
.Experimente online!
fonte
PowerShell, 11 bytes
Experimente online!
fonte
SmileBASIC, 16 bytes
fonte
05AB1E , 1 byte
Experimente online!
θ
ou`
também funcionaria.fonte
Galho, 37 bytes
Isso apenas usa uma abordagem "extrair 1 caracter do final e imprimi-lo".
Foi realmente fácil de fazer e testar, mas foi divertido!
Para usá-lo, você deve colocá-lo em um
.twig
arquivo e importá-lo:Você pode testá-lo em https://twigfiddle.com/aa19wd (casos de teste incluídos)
fonte
Bash, 13 bytes
string é passada como argumento.
Experimente online!
fonte
Emoção , 5 bytes
Explicação
Experimente online!
fonte
VBA (Excel),
1412 bytesusando Janela e Célula Imediatas
A1
como entradaObrigado @tsh
?[RIGHT(A1)]
ou?Right([A1],1)
fonte
1
opcional?Python 3,
111834 bytesUso via execução do programa como um script python na linha de comando. A entrada é fornecida como o último argumento para o programa.
Experimente online!
fonte
Fórmula IBM / Lotus Notes, 11 bytes
Fórmula de campo computado que recebe sua entrada do campo editável
i
fonte
Código da máquina de Turing,
7242 bytesAssume uma entrada sem células vazias (espaços). Obrigado ao ASCII-only por salvar 30 bytes.
Versão antiga em 72 bytes:
Experimente online .
fonte
0 * * r 1/1 * * l 2/1 _ _ l halt/2 * _ r 0
?C # 8.0 , 8 bytes
Requer o .NET Core 3.0, que está na versão beta. Atualmente, o CLR trava devido a um erro, mas, uma vez corrigido, ele será executado conforme o esperado e atenderá aos requisitos do desafio.
s=>s[^1]
C # 8.0 , é executado sem travar no momento da gravação, 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]);}}
fonte
array[^n]
é o mesmo quearray[array.Length - n]