Questions tagged «string»

通过使用和操纵琴弦来解决特定问题的竞赛。

10
这个正方形对称吗?
写一个程序或函数,它在一个4×4栅格的文本组成的正好是4 A的,4 B'S,4 C's和4 D的,如: ACDC BBCA BADD ABCD 所述ABCD的可以是任何布置,但总是会有各自的4。您可以假定输入有效。如果需要,您还可以假定它具有尾随换行符和/或它按阅读顺序排成一行,例如ACDCBBCABADDABCD。如果需要,您也可以分别ABCD用0123或替换字符1234(仅此而已)。 如果文本网格具有任何形式的反射对称或旋转对称,则输出真实值。特别: 如果有一条中心水平对称线。例如 BACD BACD BACD \___ bottom mirrors top BACD / 如果有一条中心垂直对称线。例如 BCCB DAAD CAAC BDDB \/___ right mirrors left 如果有对角线对称线(在任一方向上)。例如 ___ diagonally mirrored / ABDC BACD DCAB CDBA \___ diagonally mirrored 如果存在90°旋转对称性。例如 BDAB ACCD same if rotated 90 degrees …

2
虚拟键盘文字输入
在现代游戏机和其他没有传统键盘的设备上,尝试输入文本是一场噩梦。不得不在虚拟键盘上用几个按钮和操纵杆来打字是很烦人的,而且我希望尽可能少地进行动作/按钮按下。 您将使用的键盘如下所示: +---+---+---+---+---+---+---+---+---+---+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | +---+---+---+---+---+---+---+---+---+---+ | q | w | e | r | t | y | u | i | o | p | +---+---+---+---+---+---+---+---+---+---+ | a | …

24
排序乐队名称
挑战说明 你有许多乐队,每个都有一个名字录制了许多歌曲音乐库,如Queen,Aerosmith,Sunny Day Real Estate,The Strokes。当音频播放器按乐队名称按字母顺序显示您的音乐库时,通常会跳过该The部分,因为许多乐队名称都以开头The,从而更容易浏览媒体集。在此挑战中,给定一个字符串列表(数组),您需要以这种方式对其进行排序(即,省略The名称开头的单词)。您可以编写方法或完整的工作程序。 样本输入/输出 [Queen, Aerosmith, Sunny Day Real Estate, The Strokes] -> [Aerosmith, Queen, The Strokes, Sunny Day Real Estate] [The Ramones, The Cure, The Pixies, The Roots, The Animals, Enrique Iglesias] -> [The Animals, The Cure, Enrique Iglesias, The Pixies, The Ramones, The Roots] [The …

6
古西班牙字母顺序
在1994年之前,西班牙词典使用字母顺序排列,具有特殊性:有向图ll,ch被认为是单字母。ch立即跟进c,并ll立即跟进l。添加以西班牙语开头的字母ñ,n则顺序为: a, b, c, ch, d, e, f, g, h, i, j, k, l, ll, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z 自1994年以来ll,并ch被认为是(两个字母组l,l并且c,h分别地),并且因此按字母顺序相同的英文字母的例外ñ。 旧的命令肯定会更有趣。 挑战 输入零个或多个单词的列表,然后输出根据旧西班牙字母顺序排序的列表。排序是在单词之间(而不是单词中的字母之间)。也就是说,单词是原子的,并且输出将以可能不同的顺序包含相同的单词。 为了简化,我们不会考虑字母ñ,或重音的元音á,é,í,ó,ú,或大写字母。每个字都是一个或多个字符的序列,取值范围从ASCII 97(a)到ASCII 122(z)。 如果l连续超过两个字母,则应将它们从左到右分组。也就是说,lllis lland then l(不是land then ll)。 输入格式可以是:用空格,换行符或任何方便的字符分隔的单词。您可以选择是否将单词用引号引起来。单词列表或单词数组也是可以接受的。任何合理的格式均有效;只需在答案中说明即可。 以类似的方式,输出将是任何合理的格式(不一定与输入相同)。 打高尔夫,最短的胜利。 测试用例 在以下示例中,单词用空格分隔。第一行输入,第二行输出: llama coche …

3
跟随点
挑战 给定一个矩形的字符网格 美国广播公司 FGHIJ 克拉姆诺 PQRST 和一个点和空格尺寸相同的网格 。。。 。。。 。。 。。。 输出从左上角开始的点通过网格跟随点生成的字符串。这个例子会产生ABGLQRSNIJE 笔记 您可以将输入网格作为2D阵列或您语言中最接近的替代形式,而不是多行字符串。 您可以使用语言的NULL值代替空格。但是,您必须使用点来标记路径。 您无需在同一行上用空格分隔点。我只是为了可读性添加了它们。 最小的网格大小为1x1。 起点和终点只有一个邻居。它们之间的点将始终具有精确的两个垂直或水平邻居。这保证了路径是明确的。 路径不会成对角线。 网格中的字符将[a-z]是最方便的范围内的所有大写或小写字符。 路径将始终从左上角开始。 规则 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是代码高尔夫球,因此最低字节数获胜。Tiebreaker是较早提交的内容。 测试用例 网格#1 中国农业银行 DEFGHUQ XLUSDQZ 阿苏克西 吴科 友邦 。。 。。。 。 。。。。 。 。 => ABEFGSKUSAWA 。。。。。。。 。 。。。。 。。。。 。。 。。。。。。。 => ABCABCWQZIMPUOIAIAWAXLUUK …
22 code-golf  string  grid 

12
琴弦中紧缩的元音
任务描述 有时,您确实需要在很小的空间里容纳正在写的东西。可能会很想丢元音和其他内容,但如果失败了,谁真正需要空格?谢谢!† 编写一个函数或程序,该函数或程序除去小写的元音aeiou,然后除去空格,然后除去输入字符串中的所有字符。此外,每次删除字符时,它必须是最有资格删除的字符。它必须重复此过程,直到字符串不超过给定的输入长度为止。 †“这完全可读!”但是,如果您正在阅读此脚注,则可能不是,真的... :) 例子 在这里,您可以看到此过程适用于连续较小的输入大小: 23: Hello, Code Golf World! 22: Hello, Code Golf Wrld! 21: Hello, Code Glf Wrld! 20: Hello, Cod Glf Wrld! 19: Hello, Cd Glf Wrld! 18: Hell, Cd Glf Wrld! 17: Hll, Cd Glf Wrld! 16: Hll, Cd GlfWrld! 15: Hll, CdGlfWrld! 14: …
22 code-golf  string 

21
正交方向
任务:给定一个正好由一个字符<>^v组成的输入,输出第二个输入,该第二个输入由可打印的ASCII字符(从空格到波浪号)组成,并以箭头定向。 假设该程序的第二个输入是ABC。这是应该做的: 输入>:打印ABC。 输入<:打印CBA。 输入^:打印C\nB\nA,或输入旋转-90°。 输入v:打印A\nB\nC,或输入旋转90°。 测试用例 input => \n output --- ">", "thanks!" => thanks! --- "<", "Hello, World!" => !dlroW ,olleH --- "^", "This is text." => . t x e t s i s i h T --- "v", "Tokyo" => T o k y o --- …
22 code-golf  string 

16
使用其他打印机打印1至15
制作一台通用的整数打印机固然很好,但是编写一个可以打印许多不同数字的代码很麻烦。制作输出数字的脚本会更容易,但同时会为您提供一个新的脚本以获取下一个数字吗? 挑战: 编写输出单个整数N和可执行代码的代码。应该输出下一个代码N+1和可以输出的代码N+2。继续这条路,直到到达N = 15。(最后打印的号码应该是15)。 规则: 没有输入(假设输入为空)。 允许使用完整的程序或功能或其他方便的格式。 第一个代码应该输出1。 您无法输出前导零。例如,你不能打印01了1。 输出必须采用格式N, Code_for_N+1。请注意,输出用逗号和单个空格分隔。的代码N+1没有周围的引号。 N , Code_for_N+1不接受(逗号前面的空格)。尾随换行符可以。 输出的第一个字符必须是数字。(没有前导空格,或者ans = N)。 打印的号码不应成为下一个代码的一部分(代码可以包含该号码,但您不能将输出号码作为代码的一部分) 示例:的输出N=2可以是:2, printer 2。在这种情况下,printer 2是的代码N=3。您不能使用整个输出:2, printer 2作为的代码N=3。 脚本可能使用不同的语言 数据类型无关紧要(数字可以是字符串),但是不能被任何东西(引号,括号等)包围。 如果输出了一个代码,N=15那么它必须要么打印STOP!(请参阅奖励),要么根本不打印任何内容(甚至不包括空格或换行符)。 的代码N=15不能崩溃(但可以输出到STDERR)。 如果N=15打印输出代码16或其他任何内容(赠金情况除外),您将失去资格。 不允许使用内置的quine运算符。 不允许通过文件系统访问源文件。 奖金: -10字节(如果打印15的代码也产生了打印“ STOP!” 的代码) 使用Python语法的示例:(显然,这些仅适用于选定的整数,而不是1到15。) N = 1 print "1, print 2" 1, print 2 --- N = …
22 code-golf  string 

3
高尔夫球弦
对于总是需要字符串压缩的kolmogorov-complexity挑战,我始终未能给出答案,主要原因是我不知道我应该如何有效地使用字符串压缩工具。 因此,我已经发布了这个问题。与我的其他提示问题不同,这不是特定于语言的意思,也就是说,如果您可以用自己的语言想到任何提示,则可以将其发布(前提是您指定了语言)。一般提示也将不胜感激。 那么,如何使用字符串压缩工具发挥最大作用?

15
凯撒转移
凯撒的转变可能是我们都熟悉的东西。 (您甚至可能将它作为一项家庭作业来完成。如果是这样,请不要复制这些答案,您的老师几乎可以肯定不想在这里得到任何类似答案的东西。) 以防万一,凯撒(Caesar)移位是一种非常简单的密码形式。它需要一个要加密的字符串和一个整数。然后,对字符串中的每个字母字符执行以下转换: 计算出字母在字母中的位置(从0开始)。 将开头收到的整数加到该数字上。 当数字大于25时,从中减去26。 计算出它所在的字母的位置。 其余字符保持不变。 必须尊重大写字母,因为没有大写字母的英语是什么? 例子: abcdefghijklmnopqrstuvwxyz 1 -> bcdefghijklmnopqrstuvwxyza Spam spam spam sausage and spam! 13 -> Fcnz fcnz fcnz fnhfntr naq fcnz! abcdefghijklmnopqrstuvwxyz 52 -> abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz -1 -> zabcdefghijklmnopqrstuvwxy ABCxyz 3 -> DEFabc 假设条件 您可能会收到任何可打印的ASCII字符 输入数字可以为负,并且始终大于-128且小于128(-128<x<128) 您必须能够对大写字母和非大写字母进行可逆编码。 您必须创建完整的程序,而不仅仅是函数或代码段 您将从STDIN或最接近的候补输入 您可以选择输入格式,请在答案中注明 需要转换的字符是ASCII码点0x41 - 0x5A和0x61-0x7A-大写和小写字母 …

2
阅读新闻很无聊。帮帮我!
每个人都知道这个消息很无聊。真无聊。除非涉及政客及其丑闻。真好玩!但是可惜,政客只能犯下这么多丑闻。因此,我正在雇用您使新闻更加有趣。 目标给定一个HTML代码段,执行在此处找到的所有替换,即在此图片中: 但是您不应该自己编辑任何HTML标记。我将任何在HTML标记或它们的属性中找不到的单词称为有效单词。也就是说,您不应替换<div class="smartphone">iPhone</div>为<div class="pokedex">iPhone</div>,而应替换<div>election</div>为<div>eating contest</div>。 解析规则 编辑您只能匹配由非单词描述的单词。也就是说,您只能匹配完整的单词。(例如,匹配“您好见证人”,但不匹配“轻率”,“轻率”或“维特尼空间选择”。 如果无法在键盘上键入字符,则应显示最接近的等效字符。(例如,“智能手机”实际上将变成“ Pokedex”) 首字母大写或全字母大写必须保留。(例如,“据称他们死亡”变成“金田很可能已经死亡”,“据称他们死亡”变成“他们大概已经死亡”,“选举!”变成“饮食比赛!”,而“ SpAcE”变成“ Spaaace”和“ nEW STUDY”成为“ tumblr post”) 所有情况都必须匹配。(即,无论大小写,您都必须匹配一个单词。) 满足的任何实例a <vowel>都应成为an <vowel>,反之亦然。(例如,“参议员”变成“精灵王”)您不必为每个实例都这样做,但是至少对于您自己的替补而言。 任何复数形式也必须在翻译中保留复数形式(例如,“智能手机”变为“ pokedex”,“空格”变为“ Spaaaces”) 一定时态的任何内容都必须保留在翻译中的那个时态中。(例如,“重建”变为“复仇”,“重建”变为“复仇”,等等。) 任何单数形式都必须在翻译中保持单数形式(例如,“国会领袖”变成“河魂”) 如果条目跨越多个HTML元素,则您仍应将其匹配,但可以“丢弃”所有中间元素。(例如,S<b>pa</b>ace应简单地成为“ spaaace”)。如果条目是独立包含在单个元素中的,则应正确匹配条目并保留标签。 “目击者”应该变成“我认识的那些家伙” “目击者”应该变成“我认识的这个家伙” “见证人”应该变成“我认识的那个家伙” “无法联系到评论”应该变成“有罪,每个人都知道” “无法联系到评论”应该变成“有罪并且大家都知道” 奖金 如果您获得-N%奖金,则您的new amount = (old amount) * (1 - N/100)。因此,如果您-5%收到了500字节代码的奖金,则您的new amount = 500 * (1 - 5/100) …
22 code-golf  string 

14
检查Lyndon字
一个林登字是一个字符串,它是严格字典序小比任何其循环旋转。给定一个二进制字符串,请确定它是否是尽可能少的字节中的Lyndon字。 例如,001011是Lyndon单词。通过重复将第一个符号移到末尾,可以得到下面列出的旋转角度。 001011 010110 101100 011001 110010 100101 其中,原始字符串按字典顺序排在第一位,或者等效地代表最小的二进制数。 但是,001001它不是Lyndon单词,因为它的一种旋转方式与其本身相同,因此最早在字典上联系在一起。 一个相关的问题。 输入:非空的二进制字符串或数字列表0和1。您不能使用数字5来表示101。 输出:一致的Truthy或Falsey值,指示字符串是否为Lyndon单词。 不允许专门用于Lyndon单词的内置函数。 测试用例: 长度不超过6的Lyndon单词是: 0 1 01 001 011 0001 0011 0111 00001 00011 00101 00111 01011 01111 000001 000011 000101 000111 001011 001101 001111 010111 011111 长度不超过4的非林登词为: 00 10 11 000 010 100 101 110 111 0000 …
22 code-golf  string 

28
颠倒真相
编写程序或函数以: 从stdio或参数中获取一个字符串 替换所有出现true与false和false与true 扭转它,但不扭转true和false 返回或打印结果 示例(输入为左侧): "true" "false" "2false" "true2" "true is false" "true si false" "false,true,undefined" "denifednu,false,true" "stressed-false" "true-desserts" "falstrue" "falseslaf" "true false true x" "x false true false" 有标准漏洞。这是代码高尔夫球,因此以字节为单位的最短代码获胜。 排行榜 显示代码段 var QUESTION_ID=63256,OVERRIDE_USER=20569;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 …


9
凯撒(Caesar-Cypher)-Mania
的凯撒Cypher支架是一个非常简单的置换密码其中每个字母是由固定的偏移(围绕Z的循环至A)移动。同样,我们也可以为一组可打印ASCII字符设置一个Caesar密码。这是从代码点0x20到0x7E的95个字符。对于给定的偏移量d,我们将代码点映射C到 (C - 32 + d) % 95 + 32 会将所有字符移动a d并从~到循环。超出此范围的字符(控制字符,如换行符,制表符和ASCII范围以外的字符)不受影响。 您要编写两个程序或函数(可能使用不同的语言),它们需要一个偏移量d和一个字符串。第一个程序应返回或打印输入的凯撒密码。第二个程序应返回或打印逆凯撒密码(即使用offset -d)。您可以通过STDIN,命令行参数或函数参数进行输入。 为了使事情变得更有趣,第二个程序必须是第一个程序的凯撒密码。也就是说,如果将第一个程序的源代码传递给自身,则对于某些非零偏移量d,输出必须是第二个程序。 这两个程序以及输入字符串都必须仅包含可打印的ASCII字符,换行符和制表符。程序都不能包含任何注释,也不能直接或间接读取其自己的源代码,文件名或进程ID。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。由于两个程序必须具有相同的大小,因此您只需要计算一次即可。

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.