/* 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>
Jawaban:
Attache , 4 byte
Cobalah online! (Jika inputnya bisa berupa daftar karakter,
&/S
bisa berfungsi.)Alternatif
5 byte:
`@&-1
8 byte:
&/S@List
10 byte:
`@«_,-1»
10 byte:
Fold!Right
10 byte:
`@<~_,-1~>
10 byte:
`^^&:Right
10 byte:
{Right^^_}
11 byte:
Get«_,-1»
11 byte:
Get<~_,-1~>
12 byte:
`@«_,#_-1»
12 byte:
`@<~_,#_-1~>
13 byte:
Get«_,#_-1»
13 byte:
Get<~_,#_-1~>
sumber
Last
byte yang dimasukkan. Isi program sesuai dengan tantangankode mesin x86-16, 2 byte
Seperti yang ditunjukkan oleh @CodyGray dengan benar, mengambil input sebagai string dan output ke register menghapus sebagian besar versi program mandiri.
String input dalam
SI
, panjangCX
dan karakter output dalamAL
:Atau 4 byte sebagai "string Pascal" (panjangnya diawali dengan awal string):
Atau 5 byte sebagai "string C" (diakhiri nol / nol), masukkan
DI
:kode mesin x86-16, IBM PC DOS,
121110 byteAtau program selengkap IBM PC DOS yang dapat dieksekusi. Input dari baris perintah, output ke konsol.
Keluaran:
sumber
SI
, panjang dalamCX
output char dalamAL
" dan kemudian saya pikir satu-satunya kode yang diperlukan adalahREPZ LODSB
(2 byte) dan kami akan selesai. Tentu saja pendekatan ini tidak akan bagaimana Anda melakukannya jika Anda mengkode efisiensi, bukan ukuran. Maksud Anda diambil dengan sangat baik, saya akan mempostingnya juga sebagai fungsi yang melakukan pekerjaan daging.Brainf ***, 7 byte
sumber
-1
sebagai EOF.+[>,+]<-.
harus bekerjaMATL, 2 byte
MATL menggunakan pengindeksan modular berbasis 1 sehingga solusi ini mengambil elemen di
0
posisi ke-input yang sama dengan yang terakhir sejak0
membungkus sampai akhir.Cobalah di MATL Online
Penjelasan
sumber
J)
...PHP , 13 byte
Cobalah online!
Jalankan dengan
php -nF
input adalah STDIN. Contoh:sumber
Javascript, 14 byte
sumber
[0]
. Atau mungkin jika ada cara pendek untuk mendapatkan panjang array. Pendekatan berbeda:a=>[...a].pop()
(15bytes)Python 3 , 14 byte
Cobalah online!
sumber
e
di header). Untuk pertanyaan kedua Anda, tajuknya adalahe=\
, yang pada dasarnya berartie=lambda x:x[-1]
e=\
tetapi Markdown lolos dari karakter kode jadi saya harus menambahkan spasi tambahanBash + coreutils, 8 byte
Input dari stdin, output ke stdout.
sumber
TI-BASIC (TI-84), 10 byte
Mendapat karakter terakhir dalam string input.
Input di
Ans
.Keluaran dalam
Ans
dan secara otomatis dicetak.sumber
Haskell ,
94 byteCobalah online!
sumber
pure
? Tidaklast
cukup?Benih , 11 byte
Cobalah online!
Dihasilkan Befunge-98 program
~2j@,
itudicuridipinjam dari Jo Raja di sini , jadi kredit kepada mereka untuk itu.sumber
Java 8
Masukan dari STDIN, 71 byte
Cobalah online!
Function Argument, 25 byte
sumber
s->s[s.length-1]
akan cukup denganchar[]
tipe-parameter.> <> , 2 byte
Menggunakan args baris perintah
Cobalah online!
> <> , 11 byte
Menggunakan stdin
Cobalah online!
sumber
Cubix , 6 byte
Cobalah online!
Lihat saja
A
Mengambil semua input/
Arahkan ulang di sekitar kubuspp
bawa bagian bawah tumpukan ke atas dua kalio/@
output sebagai karakter, redirect, dan stopsumber
Befunge-93 , 12
15byteCobalah online!
Terima kasih kepada @ Jo King untuk bermain golf 3 byte.
Alternatif versi 15 byte yang tidak terlalu berantakan:
Mengambil string sebagai input di Befunge bukan yang termudah. Jika ada satu perintah untuk mengambil beberapa karakter, itu akan sesederhana membaca string, muncul / mencetak karakter teratas, dan keluar.
sumber
$$
alih-alihp1
harus bekerja tanpa peringatan untuk jumlah byte yang samaTuring Machine But Way Worse , 391 bytes
Cobalah online!
PENJELASAN
sumber
Jelly , 1 byte
Cobalah online!
Bukan tantangan tersulit di Jelly ...
Catatan ini menerima input sebagai string; jika input dapat diartikan sebaliknya (mis. angka, daftar), maka argumennya perlu dikutip (mis. "123456" atau "[123.197]"). Atau ini dapat dilihat sebagai tautan yang mengambil array byte dan mengembalikan anggota terakhir array itu, sesuai dengan aturan standar PPCG.
Terima kasih kepada @ MilkyWay90 dan @ ბიმო karena telah menunjukkan ini.
sumber
Excel, 10 byte
Cukup mirip dengan jawaban VBA @ remoel:
sumber
Cascade , 9 byte
Cukup senang dengan ini, karena hanya 3 byte lebih lama dari program kucing saya
Diperluas
Ini pada dasarnya hanya loop melalui mendorong karakter input ke
a
stack sampai EOF tercapai. Kemudian output item di bagian atasa
tumpukan menggunakan.a
.Cobalah online!
sumber
PowerShell, 11 byte
Cobalah online!
sumber
SmileBASIC, 16 byte
sumber
05AB1E , 1 byte
Cobalah online!
θ
atau`
juga mau bekerja.sumber
Ranting, 37 byte
Ini hanya menggunakan pendekatan sederhana "ekstrak 1 char dari ujung dan cetak".
Itu sangat mudah dilakukan, dan diuji, tetapi menyenangkan!
Untuk menggunakannya, Anda harus meletakkannya di
.twig
file dan mengimpornya:Anda dapat mengujinya di https://twigfiddle.com/aa19wd (termasuk testcases)
sumber
Bash, 13 byte
string dilewatkan sebagai argumen.
Cobalah online!
sumber
Emosi , 5 byte
Penjelasan
Cobalah online!
sumber
VBA (Excel),
1412 bytemenggunakan Window dan Cell Segera
A1
sebagai inputTerima kasih @tsh
?[RIGHT(A1)]
atau?Right([A1],1)
sumber
1
opsional?Python 3,
111834 BytesPenggunaan melalui menjalankan program sebagai skrip python di baris perintah. Masukan diberikan sebagai argumen terakhir ke program.
Cobalah online!
sumber
Formula IBM / Lotus Notes, 11 byte
Rumus bidang terkomputasi mengambil inputnya dari bidang yang dapat diedit
i
sumber
Kode Mesin Turing,
7242 byteMengasumsikan input tanpa sel kosong (spasi). Berkat ASCII-saja karena telah menghemat 30 byte.
Versi lama dalam 72 byte:
Cobalah online .
sumber
0 * * r 1/1 * * l 2/1 _ _ l halt/2 * _ r 0
?C # 8.0 , 8 byte
Membutuhkan .NET Core 3.0, yang dalam versi beta. Ini saat ini crash CLR karena bug, tetapi begitu bug diperbaiki, ini akan berjalan seperti yang diharapkan dan memenuhi persyaratan tantangan.
s=>s[^1]
C # 8.0 , Berjalan tanpa menabrak pada saat penulisan, 22 byte
s=>s.ToCharArray()[^1]
C # 8.0 , Program Lengkap, 78 byte
using C=System.Console;class A{static void Main(){C.Write(C.ReadLine()[^1]);}}
sumber
array[^n]
sama denganarray[array.Length - n]