var QUESTION_ID=92138,OVERRIDE_USER=58717;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}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="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <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><div id="language-list"> <h2>Winners 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><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>
E
como entrada y hacer unaE
conE
s?Respuestas:
05AB1E ,
1614 bytesExplicación
Pruébalo en línea!
Guardado 4 bytes gracias a Adnan.
fuente
©
registro: p?Í×s.øU×S»X»D»Xr»
.Python,
535155 Bytes+4 bytes gracias a @nimi
función lambda anónima, para llamarlo, escriba
f=
antes. Ejemplo:alternativa, 53 bytes
versión anterior con el caso especial de no entrada,
696563 Bytesyay para cambiar los requisitos a mitad del desafío ...
fuente
2
en su ejemplo) es la longitud total de la línea, incluidas las esquinas, por lo que la entrada correcta para su forma esf(4,1 ...)
.C,
167161159 bytesSi.
Pruébelo en Ideone, con algunos casos de prueba
fuente
Rubí,
544542 bytesEs una función anónima que toma la parte diferente de la entrada como parámetros separados y devuelve el resultado como una cadena completa.
Por ejemplo,
huellas dactilares
fuente
Javascript (ES6), 64 bytes
Ejemplo
fuente
{ "message": "Script error.", "filename": "", "lineno": 0, "colno": 0 }
cuando se ejecuta en línea..repeat()
V , 18 bytes
Pruébalo en línea!
fuente
R, 80 bytes
Bastante repetitivo:
Sin golf:
fuente
Pyke,
1615 bytesPruébalo aquí!
fuente
Pyth, 19 bytes
Un programa que toma la entrada separada por nueva línea en STDIN del carácter de esquina, número de caracteres horizontales, carácter horizontal, número de caracteres verticales y el carácter vertical, e imprime el resultado.
Pruébalo en línea
Cómo funciona
fuente
MATLAB,
95 92 91 8581 bytesFunción MATLAB 'E'. (editar: no funciona en Octave)
Y sin golfos:
La función debe llamarse como:
Que volverá:
Esto probablemente se puede simplificar un poco, seguiré trabajando en ello. No me gusta tener toda la declaración de función para obtener la entrada, así que veré si puedo mejorar eso.
Se ahorraron 3 bytes al simplificar la generación de la primera línea para hacer primero la línea sin esquinas y luego agregar las esquinas, ya que esto reduce el número de veces que se requiere indexar.
Otro byte guardado al comenzar con la primera esquina.
6 bytes más reemplazando la
repmat(a,3,1)
llamada con[a;a;a]
.Guardado 4 bytes usando
a
sin inicialización específica (ya está declarado en la declaración de función) - gracias @LuisMendofuente
a=[c a c]
allí, pero lo eliminé para reducir las cosas, ya que normalmente no se puede indexar el acceso a una variable inexistente y crearla en el proceso. Olvidé que esta era una función, pora
lo que ya está declarada en la declaración de la función como valor de retorno. Gracias :)Perl, 40 + 1 (
-n
) = 41 bytesGracias a @Ton Hospel por guardar 14 bytes y permitir que el programa funcione con entradas mayores a 10.
Necesitar
-n
tan bien como-E
(o-M5.010
) para correr. Por ejemplo :fuente
< 10
al colocar/(.)(.)/;$,=$' x<>;say+($1.$2x(<>-2).$1.$/)x3
un archivo (ya que usa$'
) y llamar conperl -M5.010 -n prog.pl <<< '^!S\n4\n9'
(usar líneas nuevas reales) que cuenta como 48 bytes (2 extra discapacidad ya que no se puede combinar con-e
)>10
. Gran trabajo con el formato de entrada, gracias.perl -nE '/.$/;$,=$/.<>x<>;say+($`.$&x(<>-2).$`)x3' <<< '^$\n!\n4\n9'
es de 41 bytes (no más$'
) y también se deshace de la nueva línea falsaDyalog APL ,
3129 bytesSolicita caracteres horizontales, ancho, caracteres de unión, altura, caracteres verticales, en ese orden.
⎕⍴⍞
input-horizontal-character y repita los tiempos de ancho de entrada ( ⍵ abajo)⍞{
...}
input-junction-character que será ⍺ en la función ...∊⍺⍵⍺
aplanar [[unión], [horizontales], [unión]]⊂
encapsular para que pueda ser parte de una lista(
...),
anteponer ...h←⎕
altura de entrada⍞⍴⍨
input-vertical-character y repítelo tantas veces↑
hacer la lista de cadenas en una tabla de caracteres⊂
encapsular (para que pueda repetirse como un todo)3/
repítelo tres veces⍪/
concatenar las tres piezas verticalmente(esto también los encapsula, así que necesitamos ...)
⊃
eliminar la encapsulaciónh↓
soltar la primera h (filas)TryAPL en línea!
fuente
C, 130 bytes
Uso:
Salida
fuente
define
y comas en sy agregarlo comof(C,O,P,S,_,D,o){W;E;W;E;W;}
guarda un byte.C #, 108 bytes
Función anónima que genera cada línea horizontal y vertical y construye la salida final.
Función sin golf:
Programa completo con casos de prueba:
fuente
MATL , 15 bytes
Gracias a @muddyfish por una corrección
Pruébalo en línea!
Explicación
El contenido de la pila después de cada paso se indica para mayor claridad, utilizando el primer ejemplo en el desafío.
fuente
Bash + coreutils, 105 bytes
Suponiendo que se nombre el archivo dentro del cual se almacena
A.sh
, el uso sería:El
--
se necesitan, por si acaso una de las entradas de caracteres pasa a ser una-
, yprintf
al parecer no maneja guiones en el principio de una cadena muy agradable sin los dobles guiones.Explicación
Suponiendo que la entrada es
5 2 + * |
...$3
printf -- "$4%.0s" $(seq $1)
$3printf "\n$5%.0s" $(seq $2)
Cree el primer segmento horizontal y el segmento vertical todos juntos. Esto resultaría en:
printf -- "$3
printf -- "$4%.0s" $(seq $1)
$3printf "\n$5%.0s" $(seq $2)
%.0s\n" {1..3}Repita el
3
tiempo parcial creado anteriormente una y otra vez. Esto ahora resulta en:printf -- "$3
printf -- "$4%.0s" $(seq $1)
$3printf "\n$5%.0s" $(seq $2)
%.0s\n" {1..3}|sed -n 1,$(($2*2+3))pFinalmente, canalice la salida anterior para
sed
deshacerse de los últimos 2 segmentos de línea al generar solo las primeras<Vertical Segment Length>*2+3
líneas deE
. Finalmente conseguimos loE
que queremos:fuente
PowerShell v2 +,
6059 bytesToma datos como argumentos de línea de comandos individuales. Construye la cadena horizontal, la almacena
$x
para usarla más tarde, luego la forma en una matriz con el operador de coma,
. Realiza la concatenación de matriz (es decir, agrega elementos al final) de$d
formulada en una matriz de$b
elementos. Eso, a su vez, se formula en una matriz de dos elementos con otro operador de coma, y se deja en la tubería. Luego, la horizontal$x
se deja en la tubería. Abusa del formato predeterminado deWrite-Output
para poner una nueva línea entre los elementos.Ejemplo
fuente
Python 3, 60 bytes
Una función
Caso de prueba
fuente
Brainf * ck, 147 bytes
Toma la entrada de stdin como los primeros 5 caracteres ingresados. Los dos primeros tienen 48 restados de su código ASCII para que 0-9 se comporte como se esperaba. Para números> 9, agregue 48 al número y use el carácter correspondiente. Los otros tres personajes son los especificados en el desafío.
Estoy seguro de que no es la solución óptima, pero la vida es demasiado corta para golff * ck.
Con comentarios:
Ejemplo de ejecución:
fuente
PHP, 97 bytes
sin bucle, solo incorporados.
Corre con
php -r '<code>' <parameters>
.fuente
Java 7,
205129 bytes-76 bytes gracias a un desconocido anónimo.
PD: No vayas a editar las publicaciones de otras personas la próxima vez. Si tiene algo para jugar al golf, déjelo como un comentario, o si está usando un enfoque completamente diferente, podría dar su propia respuesta. Aún así, gracias por jugar todos estos bytes, quienquiera que seas ...
Sin golf y casos de prueba:
Pruébalo aquí
Salida:
fuente
Raqueta 124 bytes
Forma más legible:
Pruebas:
fuente
C ++, 121 bytes
Sin golf:
En C ++ no está permitido declarar funciones sin tipo como en C. Pero las macros que se comportan como una función son totalmente posibles. Tenga en cuenta también que la versión no protegida no se compilará hasta que agregue un "\" a cada uno, pero a la última línea de la macro. Puede guardar dos bytes adicionales eliminando {}, pero no puede usar la macro dos veces seguidas.
Uso:
Salida:
Pruébalo en línea
fuente
CJam , 23 bytes
Pruébalo en línea!
La entrada está en el orden dado, pero debe estar separada por espacios en lugar de usar una coma. Parte de la dificultad es obtener la entrada en el orden correcto para la operación de unión
*
de CJam ; para comparar reorganizar la entrada podría ahorrar 4 bytes .Si las entradas se duplican
A B C D E
, el programa funciona de la siguiente manera:fuente
Lua (5.2), 144 bytes
Pruébalo en línea! (Tierra de codificación)
Debería generar algo así en este momento:
Entrada propia:
7 2 + l @
Puede cambiar la entrada en proyecto-> compilar opciones y allí cambiar los valores, cada valor como en el ejemplo pero no separados por comas sino por espacios.
fuente
QBIC, 44 bytes
Explicación
fuente
PHP, 94 bytes
Formatee una matriz en el mismo orden que la cadena sugerida
fuente
,"\n"
lugar de."\n"
, puede soltar los parens para el ternario.for($h++;$i<=2*$h;)
y$i++%$h
guarda otro byte.$v-1
da solo 3 caracteres horizontales para[5,2,+,|,-]
. Número de caracteres horizontales, sin incluir los caracteres del borde izquierdo y derecho