Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

4
几点了?
我确实喜欢节省时间,方法是在手腕上戴三只手表...问题是它们各自分配的时间不同。一只手表比实际时间晚x分钟。一只手表比实际时间早x分钟。最后一块手表显示实际时间。 问题是,我无法确定哪只手表的时间正确。 根据每只手表上显示的时间,确定实际时间。如果无法确定时间,请打印“看着太阳”。 输入: 三个读数,以单个空格字符分隔:H1:M1 H2:M2 H3:M3 在每个读数中,H1,H2,H3表示显示的小时数(0 <H1,H2,H3 <13),而M1,M2,M3表示显示的分钟数(0 <= M1 ,M2,M3 <60)。如果分钟数小于10,则在输入中添加前导0。类似地,如果小时数少于10,则在输入中添加前导0。 输出: The correct time is HH:MM其中HH:MM是正确的时间。如果无法确定正确的时间,则显示Look at the sun。 输入1: 05:00 12:00 10:00 输出1: The correct time is 05:00 输入2: 11:59 12:30 01:01 输出2: The correct time is 12:30 输入3: 12:00 04:00 08:00 输出3: Look at …
25 code-golf  date 

8
CSS彩色高尔夫!
您是网络开发人员,而您的老板已决定更新公司的网站。他认为颜色越少越好,但他希望该网站看起来一样。您有理由认为他不知道他在说什么,但您还是要尝试一下,因为您很无聊。由于该公司有成千上万个网页,并且每个网页都有自己的CSS,因此您决定编写脚本来进行必要的更改。不需要解析HTML。 当前,所有页面都使用字符串rgb(255,0,0)作为颜色。给定三个十进制值(代表CSS颜色属性的RGB值)(按该顺序),返回或打印该颜色的最短字符串表示形式,以便它可用于CSS,如下所示:color:<your-result-here>;。 这是有效的CSS颜色关键字的完整表格。它们不区分大小写。 例子: 请注意,可以使用12位或24位定义颜色。该模式#ABC是的较短版本#AABBCC。Chuck Norris是一种颜色。 您的程序将只接受3个整数,而不是字符串(后面将提到的“奖励”除外)。 0, 0, 0 -> #000 (same as #000000, but shorter) 255, 0, 0 -> red 0, 128, 128 -> TEAL 139, 0, 0 -> DarkRed (OR #8B0000) 72, 61, 139 -> #483D8B 255, 255, 254 -> #fffffe 255, 85, 255 -> #f5f (same …
25 code-golf  css 

5
全国排程冲突锦标赛
(我打算在1542年发布此消息:调度冲突 仍然是当前的xkcd,但是我遇到了调度冲突。) 输入项 输入将是3n代表n事件的元素列表。每3个组中的第一个元素将是事件的名称;第二和第三,分别是开始时间和结束时间。例如: foo 12 34 bar 56 78 表示一个事件foo始于“时间12”(时间仅用整数表示;您可以将它们视为午夜之后的分钟),结束于34,第二个事件bar始于56,结束于78。 事件的名称将始终仅由字母数字字符组成,并且时间将始终为≥0且<1440的整数。结束时间将始终比开始时间至少大1。不保证它们会以任何方式进行排序。 如果愿意,可以将其作为单个以空格分隔的字符串;否则,应将其视为数组,列表,向量或您的语言的等效形式。 输出量 输出应为事件名称的空格分隔列表。输出事件名称的规则如下: 您输出的所有事件都不会相互冲突。例如,对于input a 0 10 b 5 15,您可能不会同时输出两者a,b因为时间冲突(即部分重叠)。如果一个事件恰好在另一个事件开始时结束,则可以同时包含这两个事件。 您可能不会输出称为NSCC“国家日程安排冲突竞赛” 的事件,该事件中始终始终只有一个是输入。您还必须输出至少一个与之发生冲突(部分重叠)的事件NSCC(并且永远也至少会有其中之一)。 在遵循以上两个规则的同时,您必须输出尽可能多的事件。(这样做是为了使您看起来尽可能的忙碌,从而使NSCC丢失似乎更可信。) 也可以将其输出为单个以空格分隔的字符串或数组,列表,向量等。 可能有多个输出。 测试用例 请注意,列出的输出仅是示例。您的代码可能会输出不同的内容,只要它仍然遵循上述三个规则即可(值得注意的是,这意味着事件的数量必须与示例中的相同)。 进:UnderwaterBasketWeavingConvention 50 800 NSCC 500 550 出:UnderwaterBasketWeavingConvention 进:SconeEating 0 50 RegexSubbing 45 110 CodeGolfing 95 105 NSCC 100 200 出:SconeEating CodeGolfing …
25 code-golf 

16
给定两个行星的名称,给定距离
使用下表(源代码)编写一些代码,该代码采用两个行星的名称并返回它们之间的距离: +-------------------+---------------+ | Planets | Distance (km) | +-------------------+---------------+ | Mercury -> Venus | 50290000 | | Venus -> Earth | 41400000 | | Earth -> Mars | 78340000 | | Mars -> Jupiter | 550390000 | | Jupiter -> Saturn | 646270000 | | Saturn -> Uranus | 1448950000 …

21
星期一迷你高尔夫2:截断长文字
星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫挑战赛。 许多网络应用程序(尤其是社交媒体)会自动截断较长的文本,使其适合应用程序的格式。在这个挑战中,我们将创建一种算法来自动将一段文本修剪到一定长度。 挑战 挑战的目标是编写一个带有两个参数的程序或函数: T,要截断的文本。 L,返回的最大长度。 并返回T,被以下逻辑截断: 如果T的长度小于或等于L,则不需要截断。返回原始字符串。 将T截短为长度L -2。如果不包含空格或连字符,则将T截断为正L -3个字符,后跟省略号...。 否则,将结果的末尾修剪到最后一个空格或连字符。添加省略号...并返回结果。 细节 T和L可以采用任何顺序和任何格式。 您可以假设3 < L <2 31。 您不能使用U + 2026水平省略号…; 您必须使用三个句点。 输入将不会以空格或连字符开头。 输入将不包含除常规空格以外的任何空格。(没有选项卡,换行符等) 测试用例 输入: "This is some very long text." 25 "This-is-some-long-hyphen-separated-text." 33 "Programming Puzzles & Code Golf is a question and answer site for programming puzzle …
25 code-golf  string 

12
您的好友将坐在哪里?
您和一些伙伴正在打保龄球。总共有N个保龄球。但是,只有N -1个椅子可坐。解决方案很简单:现在轮到谁都没有椅子。然后,当他们的转弯结束时,他们坐在下一个人的椅子上。 让我们举个例子。说你是叫一个,你的四个朋友被命名为乙,Ç,d,和ē。每个玩家都按字母顺序移动,因此您必须先走。由于有5位玩家,因此只有4个席位。您的朋友按以下顺序坐在四个座位中: 中央商务区 你走了,是的,你罢工了!它的乙轮到下一个,让你在他坐在椅子上。现在看起来像这样: 中国教育发展学会 B去。天沟!然后他坐在C的位置,然后C转到下一弯。 珠子 然后C坐在D的椅子上。 BEAC 和d坐在ë的椅子 数模转换器 最后,E坐在您的椅子上。 BDEC 您会注意到,现在每个人的座位都被伪装了。您必须找出X转弯之后,谁会坐在哪里? 输入项 您的程序必须接受用户的两个输入,即字符串和数字。无需提示。该字符串将是1-51个字母字符(BZ和az),且没有重复。这代表您的朋友选择坐的顺序。不会有大写字母A,因为那是您,并且您始终优先。该数字将是您和您的朋友玩的回合总数(不是游戏)。该数字应为正数,大小应合理(小于1000)。 输出量 您的程序必须打印出X圈后您的朋友坐在的顺序,以及该轮到谁。因此,例如,如果X转向之后的订单是BEDGCAHF,而Z转向了,则您的程序必须完全打印以下内容: BEDGCAHF It is Z's turn. 以下是一些示例输入和输出。 input: E, 4 E It is A's turn. input: E, 5 A It is E's turn. input: Bb, 2 AB It is b's turn. input: …
25 code-golf  string 

7
基本的类Pyth语法检查器
Pyth是一种基于Python的高尔夫语言。它使用前缀表示法,每个命令具有不同的Arity(接受的参数数量)。 您的任务是为(不存在的)类Pyth语言Pith编写语法检查器。 Pith的语法 Pith只有8个单字符命令: 01234()" 01234每个都有对应的数字,因此期望后面有很多参数。例如, 400010 是一个正确的髓部程序,因为4后面四个参数0 0 0和10,是其中最后一个1接着一个参数0。为了可视化,我们可以看下面的树: R | 4 | ------------- | | | | 0 0 0 1 | 0 R根节点在哪里。考虑此问题的另一种方法是,每个数字都指相应节点在上面的树中具有的子代数。 这是另一个有效的Pith程序,具有多个基本命令: 210010 对应于 R | ------------- | | 2 1 | | --------- 0 | | 1 0 | 0 另一方面, 3120102100 这不是正确的Pith程序,因为开头3只有两个参数,可以通过查看下面的树来查看它们: R …

11
高尔夫运动小贴士
您在Go中打高尔夫球有哪些一般秘诀?我是Code Golf的新手,正在寻找可以应用于一般至少对Go特定的代码高尔夫问题的想法。 请对每个答案只给一个小费。
25 code-golf  tips 

2
正则表达式模式的部分排序
出于这个挑战的目的,我们说如果整个字符串(而不只是子字符串)都与该模式匹配,字符串匹配。 给定两个正则表达式模式 一 和 乙,我们说 一个 是更专业比 乙 ,如果每一个被匹配的字符串 一个 也是由匹配 乙 左右,但没有别的办法。我们说, 一个 是等同于 乙 如果两个模式匹配完全相同的一组字符串。如果两个模式都不比另一个更专业,或者它们都不等效,那么我们就说 A 和 B 是无可比拟的。 例如,模式Hello, .*!比.*, .*!; 更专业。模式(Hello|Goodbye), World!和Hello, World!|Goodbye, World!是等效的;以及模式Hello, .*!和.*, World!是无与伦比的。 关系“比……更专业”定义了一组正则表达式模式的严格偏序。特别是,对于所有模式 A 和 B,下列条件之一完全成立: A 比B更专业 (A < B)。 B 比A更专业 (A > B)。 A 和 B 是等效的(A = B)。 …

30
比较两个数字
挑战 鉴于两个整数A,并B作为输入,你必须写一个程序,如果输出A>B,A==B或A<B。 整数将在您的语言支持的任何合理范围内,包括至少256个值。 您的程序可以是完整程序,也可以是函数,可以通过STDIN或函数参数进行输入。 产出 如果A>B输出 A is greater than B 如果A==B输出 A is equal to B 如果A<B输出 A is less than B 在其中替换A和B为其整数值。 获奖 以字节为单位的最短程序获胜。 排行榜 var QUESTION_ID=55693,OVERRIDE_USER=8478;function answersUrl(e){return"http://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"http://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 …
25 code-golf  number 

19
评估Dotty字符串
编写一个程序,接收仅包含字符.和的奇数长度的字符串:。借助最初为空的堆栈,从该字符串生成一个数字,如下所示: 对于字符串中的每个字符c(从左到右)... 如果c是.并且堆栈中的元素少于2个,则将1推入堆栈。 如果c是.并且堆栈中有2个或更多元素,请从堆栈中弹出两个顶部值,并将它们的和推入堆栈中。 如果c是:并且堆栈中的元素少于2个,则将2推入堆栈。 如果c为:且堆栈具有2个或多个元素,请从堆栈中弹出两个顶部值,然后将其乘积推入堆栈。 结果数字是堆栈顶部的值。您的程序应将此编号打印到标准输出(带有可选的尾随换行符)。 (少量分析表明,除非字符串的长度为偶数,否则将仅剩一个数字,这就是我们忽略这些数字的原因。实际上,堆栈中最多不会包含2个元素。) 例如,数字为::...:.:.9: 2 1 2 2 /______ stack just after the character below is handled 2 2 4 4 5 5 7 7 9 \ : : . . . : . : . <-- string, one character at a time 为了进行完整性检查,以下是所有长度为1、3和5的字符串的数字: . …

11
从非负数生成一对整数
您应该编写一个程序或函数,该程序或函数将非负整数N作为输入并输出或返回两个整数(负,零或正)X和Y。 整数在数学上是指整数,因为它们无限多。 实现的功能必须是双射的。这意味着对于每一个N它必须输出一个不同的X Y对,并且X Y应该为每个输入输出每个对,N即,对于某些输入,应该输出以下所有对N: ... ┌─────┬─────┬────┬────┬────┐ │-2 -2│-2 -1│-2 0│-2 1│-2 2│ ├─────┼─────┼────┼────┼────┤ │-1 -2│-1 -1│-1 0│-1 1│-1 2│ ├─────┼─────┼────┼────┼────┤ ... │0 -2 │0 -1 │0 0 │0 1 │0 2 │ ... ├─────┼─────┼────┼────┼────┤ │1 -2 │1 -1 │1 0 │1 1 │1 2 │ ├─────┼─────┼────┼────┼────┤ │2 -2 │2 …
25 code-golf  math  number 

21
画一个ASCII棋盘
摘要 受到最近ASCII艺术挑战盛行的鼓舞,此挑战的目的是绘制一个ASCII棋盘,就像在其上可以播放国际象棋的棋盘一样。 编写一个程序,该程序以nin stdin或用户输入为参数,并使用正整数作为参数,然后输出带有nx个n正方形以及1个字符粗的边框的棋盘。 每个方块应为2x2字符。正方形应遵循棋盘格的正常交替的黑白色(白色为首,在左上角为白色)模式。白色方块应以空格()字符制成,黑色方块应以井号(#)字符制成。 边框应由破折号(-)组成,+并在边框或正方形的垂直点上带有加号()。 输入项 以正整数表示要在棋盘中绘制的正方形数(正方形尺寸),每个正方形为2x2字符。 示例结果 n=2 +--+--+ | |##| | |##| +--+--+ |##| | |##| | +--+--+ n=3 +--+--+--+ | |##| | | |##| | +--+--+--+ |##| |##| |##| |##| +--+--+--+ | |##| | | |##| | +--+--+--+ n=4 +--+--+--+--+ | |##| |##| | |##| |##| …

1
查找两篇Wikipedia文章之间的路线
介绍 最近,我和一群朋友在一起,我们无聊而无聊,于是我们“发明”了一个“游戏”(评论中的一些人指出,该游戏可以在线玩并且非常受欢迎,因此我们明确没有发明它,尽管我以前从未见过)。我将“游戏”一词用引号引起来的原因是,它不是实际的计算机游戏,而是在Wikipedia上玩的。 玩起来真的很容易:有人选择一些Wikipedia文章作为目标。让我们假设此示例为Code Golf。然后,所有玩家都必须从随机文章开始(通过单击侧边栏中的Random Article或转到该 URL),并且必须仅使用您当前所在文章的链接文章尽快到达“目标” 。规则包括: 不允许使用搜索功能(显然) 您只能点击文章正文中的链接(特别是内的所有文本<div id="bodyContent">) 如果您遇到的随机页面或任何其他页面没有有效链接(死链接,循环等),或者根本没有任何链接,则您可能会再次滚动。 挑战 这是您进入的地方:不幸的是,我在这场比赛中表现不佳,但我也是个肮脏的骗子。所以我希望你为我实现这个机器人。我也是一名程序员,所以自然地,我的硬盘上充满了代码,库之类的东西,而我只有几字节的可用内存。因此,挑战是Code Golf,以最少的字节数获胜。 实施细节: 当然,您不必实现一个智能机器人,该机器人可以了解主题之间的联系并自动检测最佳路线。对于这一挑战而言,强行强行绰绰有余 在实际游戏中,时间很重要。您的程序不应花超过1个小时的时间即可找到文章(这是为了避免出现诸如“最终”找到目标的随机搜索者之类的漏洞) 如果找不到目标的路径(例如无效链接或循环),则可以从以下列表中选择要执行的操作: 退出(分数保持不变) 获取另一篇随机文章,然后重试,对循环无效(得分-= 10) 在无效链接或循环上获得另一篇随机文章(自动检测循环)(得分-= 50) (按“分数”表示您的字节数) 如果您“跟踪”路线,则会减去另外20个奖励字节,因此您将打印访问的每个页面的标题。 可以使用标准的网络库(以避免出现“我制作了自己的网络库,可检索维基百科文章”之类的漏洞) 与程序相关的与网络相关的唯一事情是发送HTTP请求以下载维基百科页面 如果您的程序找到该页面,则应退出,但以某种方式表明已结束(打印字符“ f”或页面标题已足够) 避免标准漏洞 打高尔夫球吧! (这是我在这里的第一个问题,因此在利用这些注释之前,请在注释中指出明显的漏洞和注意事项-谢谢:D)
25 code-golf 

30
打印三角形
给定一个数字N,输出一个NxN直角三角形,其中每行i填充数字,最大为i。 例 n = 0 (无输出) n = 4 1 1 2 1 2 3 1 2 3 4 n = 10 1 1 2 1 2 3 . . . 1 2 3 4 5 6 7 8 9 10 (无需对齐) n = N 1 1 2 1 2 …
25 code-golf  number 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.