Questions tagged «string»

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

30
使单词适合字母网格
受到我今天早些时候看到的一个模因的启发。 挑战说明 考虑一个无限的字母网格: ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ... 取一个单词(CODEGOLF在此示例中)并使其成为网格的子序列,用空格替换未使用的字母,并在无限网格的末尾完全删除字母: C O DE G O L F 例子 STACKEXCHANGE ST A C K E X C H A N G E ZYXWVUTSRQPONMLKJIHGFEDCBA Z Y X W V U T S R Q P O N M L K J I …

24
重要空白
我们将空格定义为三个字符中的任何一个,即制表符(0x09),换行符(0x0A)或空格(0x20)。 为了应对这一挑战,您将使用相同的编程语言编写两个程序或函数,它们将执行以下任务: 计算给定字符串中的空白字符。例如,输入 123 -_- abc def 将返回7(假设没有结尾的换行符)。 在连续的空白处分割给定的字符串。如果字符串以空格开头或结尾,则结尾处不应返回任何空字符串。例如,相同的输入 123 -_- abc def 会回来的["123", "-_-", "abc", "def"]。 无论哪种情况,您都可以通过STDIN,命令行参数或函数参数接受输入,然后返回结果或将其打印为STDOUT。对于第二个程序,如果选择打印到STDOUT,请在每个字符串的一行上打印它们,不要用引号引起来。 对于这两个程序,您都可以假定输入仅包含可打印的ASCII(0x20至0x7E)和空格。 现在是要抓住的地方: 如果从两个程序/功能中都删除了所有空格,则产生的字符串必须相同。也就是说,您的两个提交内容只能在空格字符的数量和位置上有所不同。 程序/函数均不能包含任何字符串或正则表达式文字(如果您的语言具有指定的字符类型,则文字文字可以使用)。 程序/功能均不得包含任何注释。 您不得直接或间接阅读程序的源代码。 这是代码高尔夫。您的分数是两种解决方案的总和(以字节为单位)。最低分获胜。 排行榜 以下Stack Snippet会按语言生成常规排行榜和获胜者概述。因此,即使您选择的语言不能让您赢得全部挑战,为什么不尝试在第二名中夺取一席之地呢?我很高兴看到人们如何以多种语言应对这一挑战! 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes 这里N是总您提交的大小。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 您也可以在总计数之前包括单个计数,例如 # Python 2, 35 + 41 = 76 …

30
做些字母雨
字母雨 任务: 基本前提是打印出输入字符串,然后根据其在(不区分大小写)字母中的位置(0索引)垂直地重复每个字符A-Z。A在位置0处因此不重复,e在位置4处因此重复4次,P在位置15处因此重复15次,!不在位置处A-Z因此重复0次,等等。 为了清楚起见,超出范围的任何内容B-Zb-z(例如数字或特殊字符)将不会重复,因此只会出现在第一行。 这是代码高尔夫,因此每种语言中最短的解决方案是获胜者。 输入: 输入将使用标准的可打印ASCII字符集,从32 到126 ~。 输入字符串的长度为1个字符或更长。 不会有任何前导或尾随空格。 您可以将输入作为字符串("hello")或字符列表(["h", "e", "l", "l", "o"]) 例子: 输入的aaaa给出: aaaa 输入的abcda给出: abcda bcd cd d 输入Programming Puzzles & Code Golf!,得到: Programming Puzzles & Code Golf! Progr mming Puzzles Code Golf Progr mming Puzzles Code Golf Progr mming Puzzles ode Golf Progr …

17
填写扫雷线索
扫雷(Minesweeper)是一种流行的益智游戏,您必须在不单击这些图块的情况下发现哪些图块是“地雷”。每个图块要么是地雷(用表示*),要么是线索,即从0到8的数字表示在8个相邻图块中有多少是地雷。今天的任务是拿一个包含地雷的板子,并填写所有线索。例如,看下面的5x4板,有5个地雷: * * * * * 填写线索后,董事会将如下所示: 2*211 *33*1 12*32 0112* 细节 您必须编写一个完整程序或一个函数,该函数接受仅包含空格和星号的字符网格,并输出另一个网格,其中每个空格都用相邻的地雷(星号)替换。这些是您的网格可接受的格式: 带有换行符的字符串 二维字符列表/单个字符串 字符串列表 您可以假定网格至少为 1x1,尽管可能是所有地雷或所有空间。 输入网格将始终填充适当数量的空格。像往常一样,这是代码高尔夫球,因此存在标准漏洞,并且以字节为单位的最短答案为胜! 样品IO 为了看到空白,我将显示所有带有括号的示例IO。 Input: [ * ] [* ] [ ] [ ] [ ** ] [ * * ] Output: [1101*1] [*10111] [110000] [012210] [12**21] [1*33*1] Input: [****] [****] Output: [****] …

30
输出文本“代码保龄球”
代码保龄球 Brunswick Bowling雇用您来创建一个简单的程序,Code Bowling在他们的监视器上输出文本。这家公司值得一分钱,您觉得可以骗他们一些的钱。 职位描述清楚地表明,他们按计分方式付款,并且您很有信心可以操纵自己的计分系统,从而从中获益,并从这些人那里获得最大的薪水支票。这样做将需要您将尽可能多的代码打包到程序/函数中,即使它们的计分系统旨在防止您这样做。 拿出您的存钱罐,让我们编码! 挑战 面临的挑战是简单地输出文本Code Bowling,使其与此处编写的内容完全一样,并获得最高分。(请参阅下面的评分系统部分) 开头和结尾的换行符(换行符)是可以接受的。 您的代码可以是整个程序,也可以是可执行函数。 规则 强制性:此挑战是使用代码收集:通用规则,修订版1.0.0;有关详细信息,请参见Meta。 字符:字节比率 在代码保龄球中,字符计数比字节计数优先。显而易见的原因是,可以使用多字节unicode字符(例如🁴)代替单字节unicode字符来弄乱字节数,并使更多人知道谁用高字节unicode字符重命名最多的变量,而不是而不是最有策略地创建有意义的复杂代码的人。 变量/功能/对象名称 所有变量名称(或对象指针,函数名称等)应为1个字符长。使用2个字符的变量名称的唯一可接受时间是在使用了所有可能的1个字符的变量之后。使用3个字符的变量名称的唯一可接受时间是在使用了所有可能的2个字符的变量之后。等等。 未使用的 代码必须使用所有代码。意味着如果删除了任何单个字符(或不同的字符集),程序必须无法始终正确地完成任务。自然,如果没有程序的其余部分,该程序的子集将无法独自完成任务。 注释 除非程序或功能以某种方式使用了注释,否则不允许对字符计数进行注释。 评分系统: Pangram挑战: 七巧板是每个字母至少使用一次的句子。(敏捷的棕色狐狸跳过了懒狗)。 这种挑战类型具有计分系统,其中完美的Pangram可以达到理论上的最高分数(尽管您不需要至少每个字符都使用一次。)此外,多次使用任何字符都将招致惩罚。这个挑战也扩展到了不仅仅是字母字符。 评分标准: 使用的每个字符都会使您的得分提高1。 重复使用任何字母数字字符(az,AZ,0-9)将导致每次重复扣除3分(首次使用不会导致扣除)。 重复使用基本标点符号([!?.-,":';])-包括方括号-将导致每次重复扣除2分。 重复使用其他ASCII字符{`~@#$%^&*_+=|\/><}(包括花括号)将导致每次重复扣除4点。 使用空格,制表符和换行符将导致每次使用减少1分。也就是说,它们不计入角色总数。 上面未提及的字符(奇异字符)每次使用将导致扣1分。也就是说,它们不计入角色总数。 计分工具: 一个自动计分的小工具已经创建,可以在这里找到。 这是一个代码收集变体。得分最高的程序将获胜!(由于最高得分为94,因此,只要得分最高的人(如果可以达到的话)将被标记为接受的答案,但是其他人则可以继续保持乐趣)

30
转换YYYYMM到MMMYY
基于这个SO问题。 挑战非常简单:给定日期格式的日期,将YYYYMM其以格式输出MMMYY。 规则: 输入将是数字或正好6个字符长的字符串,仅由数字组成。 后两位数字介于01和之间12。 输出必须采用形式MMMYY,其中MMM代表月份的大写三字母代码(以下),并YY代表输入部分的最后两位数字YYYY。 带有相应代码的月份列表: MM MMM 01 JAN 02 FEB 03 MAR 04 APR 05 MAY 06 JUN 07 JUL 08 AUG 09 SEP 10 OCT 11 NOV 12 DEC 例子: Input Output 201604 APR16 200001 JAN00 000112 DEC01 123405 MAY34
54 code-golf  string  date 

27
生成字词
标识是对哈希值的直观描述,通常由几何形状的对称排列制成。您的默认Stack Exchange头像是一个identicon。挑战在于创建“ wordenticons”,即简单的基于文本的identicon图标版本,适用于小写字母(即单词)字符串。 挑战 编写一个接受字符串S并输出其wordenticon的程序或函数。S保证为非空,并且仅包含小写英文字母字符az。您可以选择假设S具有尾随换行符。 S的wordenticon是文本的正方形网格,其边长2*length(S)由空格( ),竖线(|)和横线(―)组成。 要生成S的词​​对像,形成一个正方形网格,其中每一列对应于S的一个字母(按从左至右的正常阅读顺序),每一行对应于S的一个字母(按从上至下的正常阅读顺序) )。 例如,如果S是food我们的初始网格, food f.... o.... o.... d.... 在哪里.只是一个占位符。 对于.网格中的每个空白点(每个): 如果列字母来排字母之前按字母顺序,替换.用|。 如果列字母来排字母后按字母顺序,替换.用―。 如果列和行字母相同,则.用 (空格)替换。 这是food每个步骤之后的示例: 添加|的: food f...| o|..| o|..| d.... 添加―的: food f.――| o|..| o|..| d―――. 添加 的: food f ――| o| | o| | d――― 要完成单词输入法,请删除包含单词的多余行和列 ――| | | | | …

30
哪个围棋等级更高?
传统棋盘游戏Go的玩家使用等级系统衡量他们的技能: 新加入该游戏的玩家排名第30kyū(书面30k),并递减至第1kyū(书面1k)。这些被认为是学生等级。 玩家可以从第1推动圭以1 丹等级(书面1d),然后进度上数到第七丹等级(书面7d)。这些是大师级的队伍。 过去非常熟练的运动员7d可以晋升为第一职业丹等级 1p,并逐步增长到第九职业丹等级(书面9p)。这是最高等级。 简而言之:等级是有序的30k < 29k < ··· < 1k < 1d < 2d < ··· < 7d < 1p < 2p < ··· < 9p。 任务 鉴于中两个字符串{ 30k,... 1k,1d..., 7d,1p,... 9p}作为输入,输出更高的两个级别。(如果它们相等,则只需输出其中一个输入。) (通常,I / O是灵活的,您的答案可以是函数或完整程序,可以以任何合理的方式读取输入并以任何合理的方式产生输出。) 这是代码高尔夫球:目的是最大程度地减少代码的字节数。 测试用例 (格式:input1 input2 output。) 29k 9k 9k 21k 27k 21k 6d …
53 code-golf  string  go 

30
长度相同,字符串不同
挑战 给定一个非空字符串小号长度的大号完全由可打印的ASCII字符的,输出长度的另一个字符串大号即完全由可打印的ASCII字符,但不等于小号。 出于此挑战的目的,可打印的ASCII字符是U + 0020和U + 007E(含)之间的一个字符;也就是说,从 (空间)到~(波浪号)。不包括换行符和选项卡。 例如,给定"abcde",一些有效的输出可能是: "11111" "abcdf" "edcba" 但是这些将是无效的: "abcde" "bcde" "abcde0" 测试用例 "asdf" "1111" " " "~~~~~" "abcba" "1" " " "~" " ~" "~ " " 0" "!@#$%^&*()ABCDEFGhijklmnop1234567890" " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" 规则 您可以假定输入完全由可打印的ASCII字符组成。 您可能不会假定输入不包含所有95个可打印字符。 您可能假设输入内容至少包含一个字符,且长度少于256个字符。 输出还必须完全由可打印的ASCII字符组成。例如,您无法为input输出字节\ x7F "~"。 输出必须与输入1的概率不同;也就是说,您可以生成随机字符串,直到一个字符串与输入字符串不同为止,但是您不能仅输出L个随机字符并希望它与众不同。 输出中不允许使用换行符,但是您可以输出一个尾随的换行符,该换行符不计入字符串。 计分 这是代码高尔夫球,因此每种语言中以字节为单位的最短代码获胜。
53 code-golf  string 

30
用户赞赏挑战#1:Dennis♦
我有一个自发的想法,即向用户提出一系列挑战,这些挑战已经帮助并将继续帮助PPCG社区成为每个人(或者可能只是我个人)一个愉快的地方。:P 如果将Dennis的名称转换为1s和0s 的数组,其中每个辅音为1,每个元音为0,则该数组为[1, 0, 1, 1, 0, 1],这是对称的。因此,您面临的挑战是确定其他类似名称。 挑战 给定ASCII字符串,请删除所有不是字母的字符,并确定元音和辅音的配置是否对称。y不是元音 请注意,您的程序本身不必是这种类型的字符串。 测试用例 Dennis -> truthy Martin -> truthy Martin Ender -> truthy Alex -> falsy Alex A. -> truthy Doorknob -> falsy Mego -> falsy 参考实施 给定一个测试用例,此Python 3代码将提供正确的输出。这是我能做到的,但又不荒谬。 Python 3 s = input() l = [] for c in s: …

26
解密那些区分大小写(非常敏感)的字符串
目标 这是一个简单的挑战。您的目标是通过将每个字母与相同大小写的下一个字母交换来对字符串进行加扰,同时保持非字母字符不变。 逐步说明 第一个字符是E。我们寻找大写的下一个字母:这是一个C。我们交换了这些字符,从而导致CdoE!。 我们前进到下一个字符:这是一个d。我们寻找小写的下一个字母:这是一个o。我们交换了这些字符,从而导致CodE!。 我们前进到下一个字符:这就是d我们刚刚移到此处的字符。我们将其忽略,因为它已被处理。 我们前进到下一个字符:这是E在步骤#1中移到的字符。我们将其忽略,因为它已被处理。 我们前进到下一个字符:这是一个!。我们忽略它,因为它不是字母。 规则 您可以假设输入字符串仅由可打印的ASCII字符组成,范围为32-126。 您可以编写完整的程序或函数,以打印或返回结果。 如果输入字符串包含奇数个字母,则无论大小写如何,最后一个剩余的字母都不能与另一个字母互换,并且应保留在原位。如果字符串包含偶数个字母,但奇数个大写字母和奇数个小写字母,则适用相同的逻辑。 这是代码高尔夫球,因此最短的答案以字节为单位。禁止出现标准漏洞。 测试用例 Input : lLEhW OroLd! Output: hELlO WorLd! Input : rpGOZmaimgn uplRzse naC DEoO LdGf Output: prOGRamming puzZles anD COdE GoLf Input : eIt uqHKC RBWOO xNf ujPMO SzRE HTL EOvd yAg Output: tHe quICK BROWN fOx …
53 code-golf  string 

30
你能把我做成六角形吗?
今天,我们将制作一个ASCII六边形。您必须编写一个程序或函数,该程序或函数采用正整数n,并输出大小为n的六边形网格,该网格由星号组成。例如,大小为2的六边形如下所示: * * * * * * * 虽然大小为3的六边形如下所示: * * * * * * * * * * * * * * * * * * * 您可以使用任何默认的输入和输出方法,例如STDIO / STDOUT,函数参数和返回值或读取/写入文件。 您可能会认为输入始终有效,因此,如果输入的值不是正整数,则您的程序可以执行您想要的任何操作。你做但是必须处理大小为1六边形,这恰好是一个星号的特殊情况: * 只要输出在视觉上相同,就允许前导和尾随空格。 例子: 1: * 2: * * * * * * * 3: * * * * …

30
我太冷了,调高温度
这是我的第一次高尔夫比赛。 你需要做什么 用最短的字节为我构建AC远程控制系统。我的房间现在太冷了,我想念我的遥控器。 现在,我不希望您从字面上构建它或任何东西,只需打高尔夫球: 缓慢的温度增量,从40度开始,恰好在72度结束。增量时间必须始终为每次增量500毫秒。最后可以再等待500毫秒。我希望它停止。增量本身每次必须增加两次,就像我的遥控器一样。 您不应该清除屏幕。您应该有换行符。 应该发生什么 示例输出(不应该输出括号中的所有内容)。 40 (wait 500 millis) 42 (wait 500 millis) 44 (..repeat until 72..) 72 (stop or wait 500ms) 请记住, 这是我的第一场高尔夫,因此对打高尔夫球太困难了,我深表歉意。:( 祝您好运,高尔夫球手!

30
让我们高尔夫一个BIBABOBU解码器
当我将来旅行时,我注意到大约2275岁的孩子之间发生了一场有趣的游戏。当他们不希望他们的曾曾曾祖父母明白他们在说什么时,他们会用BIBABOBU说话。显然,我在半机器人之前的时代无法理解任何事情,而且我(或者从技术上:我会觉得)真的很愚蠢。因此,我下次访问时需要解码器。 BIBABOBU? 尽管已被弃用很长时间,但ASCII在2275的流行文化中仍然很常用,并且该语言基于它。 字符串是用BIBABOBU编码的: 将所有字符转换为其ASCII码。 取每个代码的2位十六进制表示形式,并使用下表对其进行转换: 0: BI 4: BIDI 8: BADI C: BODI 1: BA 5: BIDA 9: BADA D: BODA 2: BO 6: BIDO A: BADO E: BODO 3: BU 7: BIDU B: BADU F: BODU 例 "Hello!" → 48 65 6C 6C 6F 21 → "BIDIBADI BIDOBIDA …

15
无味和其他错误
标准Android计算器应用程序的某些版本允许您按一个键,例如“ sin”,然后按“ del”键使其变为“ si”。可能只是一个bug,他们不能为删除而烦恼。 以下字母/字母分组是可键入的: 罪 si s cos 合作 C 棕褐色 ta Ť ln 升 日志 罗 Ë 因此,“无味”是典型的,因为ta-steless,“木s”也是如此,因为“ c-log-s”。但是,“ got”不是可键入的,“ an”或“ xyz”也不是可键入的。 编写一个程序,该程序将单个单词(或字母序列,输入中仅包含z)作为输入,并生成输出以指示单词是否可键入。 输出可以是单个字符/字母/数字/等。或可能更大。所有可打字的单词应产生相同的输出。所有非典型词也应产生相同的输出。 PS只是出于好奇,“无味”是最长的可打字的字典单词吗?

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.