Questions tagged «string»

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

7
移至可打印的ASCII前端
背景 所述移动至前的变换(MTF)是一种数据编码算法旨在提高熵编码技术的性能。 在bzip2压缩算法中,它是在Burrows-Wheeler变换(如Burrows,Wheeler和Back所示)之后应用的,目的是将重复的字符组转换为小的,易于压缩的非负整数。 定义 为了解决这一挑战,我们将定义MTF的可打印ASCII版本,如下所示: 给定输入字符串s,取空数组r,所有可打印ASCII字符(0x20至0x7E)的字符串d,并对s的每个字符c重复以下操作: 追加的索引Ç在d到ř。 将c移到d的前面,即,从d移走c并将它放在其余的前面。 最后,我们将r的元素作为原始 d中的索引,并获取相应的字符。 分步示例 INPUT: "CODEGOLF" 0. s = "CODEGOLF" d = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [] 1. s = "ODEGOLF" d = "C !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [35] 2. s = "DEGOLF" d = "OC !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [35 47] 3. s = …

8
从字符串中删除单行和多行注释
目标 使用您选择的编程语言,编写最短的程序以消除代表C程序的字符串中的注释。 输入项 字符串可以视为任何形式的输入,但也可以视为变量。 使用说明 两种不同的注释将被删除: 多行注释,以开头/*和结尾*/ 单行注释,//以Linux样式的换行符(LF,\n)开始和结束 字符串中的注释不可删除。出于此挑战的目的,您只需要考虑- "分隔的字符串。特别是,您可以忽略使用- '分隔字符文字的可能性。您也可以忽略三边形和连字号(/\<LF>*...)。 例子 输入: #include <stdio.h> int main(int argc, char** argv) { // this comment will be removed if (argc > 1) { printf("Too many arguments.\n"); // this too will be removed return 1; } printf("Please vist http://this.will.not.be.removed.com\n"); printf("/* This will …

6
记住23940的助记符
该系统主要是记忆用于转换数字成单词,这样他们可以更容易地存储设备。 它基于单词的语音发音方式,但是为了使问题简单易懂,我们只关心单词的拼写方式。这意味着会有一些不正确的转换,但是没关系。 使用简化的主系统将数字转换成单词: 0用s或替换每个z。(有些可能是s,有些可能是z。下同。) 1用t或d或替换它们th。 替换每个2有n。 替换每个3有m。 替换每个4有r。 替换每个5有l。 6用j或sh或替换它们ch。 替换每个7用k或c或g或q。 8用f或替换每个v。 9用p或替换每个b。 如有可能aehiouwxy,在任意位置添加字母以构成一个真实的英语单词。唯一的例外是,不得在或之后插入。 hsc 该数字实际上可以是数字0-9的任何字符串(无小数,逗号或符号)。 该单词只能包含小写字母az。 例子 该数字32必须转换为?m?n?,其中?代表由字母组成的任何有限字符串aehiouwxy(如果愿意,则是来自免费monoid的字符串)。有许多方法,这可能做成一个真正的英文单词:mane,moon,yeoman等。 该数字05可以转换为?s?l?或?z?l?。一些可能的是easily,hassle和hazel。这个词shawl是不允许的,因为h可能不能放在之后s; 它会被错误地读取为65。 挑战 编写一个程序或函数,该程序或函数使用数字0-9的字符串,并找到所有可以使用简化的主系统助记符将其转换成的单词。 您的程序可以访问单词列表文本文件,该文件定义了所有“真实”英语单词是什么。此文件的每一行上都有一个小写的az字,您可以选择假定它有一个尾随的换行符。这是可用于测试的真实单词列表。您可以假设这个单词列表文件被称为f(或更长的名称)并且位于任何方便的目录中。 对于35字节的罚款(将您的分数加35),您可以假设单词列表已作为字符串列表加载到变量中。这主要用于无法读取文件的语言,但是任何提交都可以利用它。 您的程序必须输出所有单词列表中可以转换输入数字的单词。应该将它们打印到stdout(或类似格式),每行打印一次(带有可选的尾随换行符),或者如果您选择编写函数,则可以将它们作为字符串列表返回。单词列表不一定按字母顺序排列,输出也不需要。 如果没有可能的单词,则输出(或列表)将为空。如果输入空字符串,则输出也为空。 通过标准输入,命令行或函数的字符串参数获取输入。单词列表或其文件名不应是输入的一部分,而应是数字字符串。 您只匹配单词列表中的单个单词,而不匹配单词序列。该单词noon可能是的结果之一22,但单词序列no one不是。 测试用例 假设这是单词列表: stnmrljkfp zthnmrlshqfb asatanamaralajakafapa aizxydwwwnhimouooraleshhhcavabe zdnmrlshcvb zdnmrlshchvb sthnmrlchgvb shthnmrlchgvb bob pop bop bopy boppy 输入0123456789应给出除zdnmrlshchvb和以外的所有长词shthnmrlchgvb: stnmrljkfp zthnmrlshqfb asatanamaralajakafapa aizxydwwwnhimouooraleshhhcavabe …
19 code-golf  string 

13
谢尔宾斯基层
首先,/\您可以通过在下面添加一条线来创建类似于Sierpinski三角形的图案,从而... 任何松散的分支/或\再次分裂为两个分支:/\。 分支的任何碰撞都将\/死,其下无任何东西(只有空格)。 重复这些规则将产生 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHart的启发) 编写一个程序或函数,该程序或函数接受一个正整数N,并将此模式的前N行打印到stdout,且前导或尾随空格不超过所需数量。 例如,如果输入是1输出,则必须为 /\ 如果输入是2输出,则必须为 /\ /\/\ 如果输入是8输出,则必须为 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等等。 字节最少的代码获胜。

30
字符串到二进制
这是代码高尔夫挑战赛。就像标题所说的那样,编写一个程序来将一串ascii字符转换为二进制。 例如: "Hello World!" 应该变成 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001。 注意:我对pyth实现特别感兴趣。

9
从ASCII文本生成PBM位图文件
该PBM(便携式位图)格式是一个非常简单的ASCII黑白位图格式。 这是字母“ J”(从Wikipedia链接复制粘贴)的示例: P1 #这是字母“ J”的示例位图 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 …

10
他们从哪里打来的?
在国际范围内拨打电话时,电话号码前会带有一个代码,以指示该号码所在的国家/地区。这些代码是前缀代码,这意味着任何代码都不是另一个前缀。 现在,今天早些时候,您错过了一个呼叫,并且您很好奇该呼叫可能来自何处。因此,您想查找调用代码。但是,作为前缀代码,您不太确定它的结尾,因此您决定编写一个程序以将调用代码与号码的其余部分分开。 输入值 作为输入,您将收到一个由digits组成的字符串0-9。前几位数字将是下面列出的国家/地区电话代码之一(这意味着前几位永远不会是0)。输入国家/地区电话代码后,其余输入将以任意顺序包含零个或多个数字- 不保证该数字是有效的电话号码。您的程序必须能够处理至少包含15位数字的输入 输出量 您的程序应输出唯一的国家/地区电话代码,该代码是该号码的前缀。有效输出如下: 1 20 211 212 213 216 218 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 …

26
将数字字符串从单词转换为整数
将包含数字作为单词的字符串转换为整数,而忽略前导零。 例子 "four two"-> 42。 "zero zero zero one"-> 1。 假设条件 提交内容可以假定: 输入字符串由空格分隔的数字词组成。 所有单词都是有效的(在“零” ..“九”的范围内)且小写。空输入的行为是不确定的。 输入字符串始终表示范围内的无符号数字,int并且决不能为空字符串。 计分 答案将以字节计分,而字节数越少越好。

30
删除常见的前导空格
使用Python进行编码时,有时您希望在函数中使用多行字符串,例如 def f(): s = """\ Line 1 Line 2 Line 3""" (反斜杠是删除前导的换行符) s但是,如果您尝试实际打印出来,则会得到 Line 1 Line 2 Line 3 那根本不是我们想要的!领先的空白太多了! 挑战 给定一个仅由字母数字字符,空格和换行符组成的多行字符串,请从每行的开头删除所有公共空格。保证每行至少有一个非空格字符,并且没有尾随空格。输出可能没有多余的空格,无论是在整个输出之前还是之后,还是在单独的行之后(单个可选的尾随换行符除外)。 输入可以通过STDIN或函数自变量,输出可以通过STDOUT或函数返回值。您不能使用任何旨在使多行字符串变短或执行此确切任务的内置程序,例如Python的textwrap.dedent。 这是代码高尔夫球,因此以最少字节为单位的解决方案将获胜。有标准漏洞。 测试用例 "a" -> "a" " abc" -> "abc" " abc\n def\n ghi" -> " abc\ndef\n ghi" " a\n b\n c" -> "a\nb\nc" " a\n b\n …

5
采访:前九
采访:前九 这是受编程面试问题启发的一系列挑战中的第一个。 您走进潜在的未来老板所在的办公室。他说:“进来坐下。” 您紧张地坐下,确保您的活泼而专业的服装没有皱纹。他向您询问有关您的学历,以前的工作经验等许多问题。您通常会诚实地回答它们,并在此处和此处添加一些修饰以使自己听起来更好。他俯身,开始再次讲话。 “您听说过打高尔夫球吗?” 为什么,是的,您喜欢打高尔夫球,并且经常在业余时间打高尔夫球。“太好了。面试的最后一部分是技术考试。您将被要求编写代码来解决一系列问题……”他递给您一张纸。您可以快速浏览一下。十分简单。现在,他为什么要问打高尔夫球的代码? “将根据您对这些问题的解决方案的总大小来给您打分。如果您的得分比所有其他候选人都低,那么这是您的工作。” 哦。“像高尔夫一样,有18个问题,分为两个问题,每组9个。请随意使用您喜欢的任何语言来解决它们;我们为您所听到的每种语言提供了编译器和解释器,当然您还可以使用其中的几种语言“ t。祝你好运!” 任务 任务1:乘法表 给定一个数字n作为输入,输出范围为的正整数的乘法表[1, n]。n将在范围内[1, 12]。所有数字应在表格中左对齐。使用该字符x的左上角。 例子: n=4 x 1 2 3 4 1 1 2 3 4 2 2 4 6 8 3 3 6 9 12 4 4 8 12 16 n=10 x 1 2 3 4 5 6 7 …

12
组成填空
假设我们在字符串上有一组特定的函数。这些函数有点像填入空格或madlib,不同之处在于它们仅接受一个输入并使用该输入来填入所有空白。例如,我们可能有一个看起来像 I went to the ____ store and bought ____ today. 如果我们将此功能应用于字符串cheese,结果将是: I went to the cheese store and bought cheese today. 我们可以将这些函数表示为字符串的非空列表,其中的空格只是字符串之间的空白。例如,我们上面的函数将是: ["I went to the ", " store and bought ", " today."] 在这种表示形式下,此类每种功能只有一种表示形式,而每种表示形式仅一种功能。 一件真正整洁的事情是,这些功能的集合在组合时是封闭的。也就是说,我们两个功能的组合始终是这些功能中的另一个。例如,如果我用 ["blue ", ""] (添加blue到输入的函数)我们得到函数: ["I went to the blue ", " store and …

22
ssTTsSTtRrriinInnnnNNNIiinngg
挑战 对于字符串的每个字符(最后一个字符除外),请执行以下操作: 输出当前字符。 接下来,从以下列表中随机输出1-5(含)之间的随机次数: 当前角色 字符串的下一个字符 您当前使用的字符的开关盒版本 字符串的下一个字符的开关盒版本。 测试用例 String -> SSSTSStrTrIiinIIngn , . , . , . Hello world! -> ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D Programming Puzzles and Code Golf -> PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf 笔记 如果字符是字母(AZ和az)的一部分,则仅需要应用字符的切换大小写版本。 …

8
三进制if转换器
在Java / .NET / C / JavaScript / etc中。您可以使用三元if来缩短if语句。 例如(在Java中): // there is a String `s` and an int `i` if(i<0)s="Neg";else if(i>0)s="Pos";else s="Neut"; 可以通过三元数缩短为: s=i<0?"Neg":i>0?"Pos":"Neut"; 挑战: 输入:设置单个变量的常规if-else(可以嵌套)。 输出:转换后的三进制-if。 挑战规则: 您可以假设所有if-else情况都可能没有括号(因此,每个if / else-if / else块都有一个主体)。 您可以假设将没有任何空格,制表符或换行符,除了每个空格,制表符或换行符else(包括处的else if)之外。 您可以假设使用的变量名始终是一个小写字母([a-z])。 赋予变量的值可以是以下之一: 字符串(不带空格/选项卡/新线),这将通过双引号包围(即"Test","SomeString","Example_string"等等)。您可以假定字符串将永远不包含子字符串if或else,也不包含空格,制表符,换行符(转义的双引号)或字符=。它可以包含字符><(){}[];?:!&|,但只能在可打印的ASCII范围内(['!' (33), '~' (126)])。 整数(即0,123,-55等等) 小数(即0.0,0.123,-55.55等等) 这些值永远不会混淆。因此,分配的所有变量都是整数,并非某些是整数,有些不是字符串。 括号内的条件可以包含以下字符=<>!+-/*%&|[],a-z,0-9。您可以假设将没有任何内部括号,也可以假设将不使用任何使用多个字符(如if(if<0))的(令人困惑)字段。 您可以假设不会有i*=10代替的快捷方式i=i*10。 您无需处理悬而未决的else案件,因此if可以将所有案件与配对else。即if(a)if(b)r=0;else r=1;不是一个可能的输入案例。if(a)if(b)r=0;else r=1;else …
18 code-golf  string 

30
文字压缩
在下面的给定文本中,文本中有些单词在文本中重复多次。使用任何编程语言编写简短的代码即可压缩文本以显示它。换句话说,使用最少的字节数来显示文本。 文本是: Peter Piper picked a peck of pickled peppers. A peck of pickled peppers Peter Piper picked. If Peter Piper picked a peck of pickled peppers, Where's the peck of pickled peppers Peter Piper picked?

9
填充字符串列表之间的最大汉明距离
等长的两个字符串之间的汉明距离是相应字符不同的位置数。如果弦的长度不相等,则汉明距离未定义。 挑战 编写一个程序或函数,该程序或函数从字符串列表中的所有字符串对中找出最大汉明距离,并根据下文所述的规则进行填充。 字符将来自内部a-zA-Z0-9。 字符串的长度可能不相等,因此对于每个比较而言,较短的字符串都必须按以下方式填充: 从头开始将字符串包装多次,以匹配所需的长度 每次奇数换行(第1,第3,第5等)更改字母的大小写 a-zA-Z包装时,将外部物品保持不变 例如,假设您需要填充5个字符串ab9Cd,以使其最终以18个字符结尾。您最终将得到: ab9CdAB9cDab9CdAB9 ^^^^^ ^^^ 与^第一和第三包裹下加入到亮点的情况下更改。 输入输出 输入/输出格式灵活。您可以假定输入至少包含两个字符串,并且所有字符串都将至少包含一个字符。 输出为整数。 规则 这是代码高尔夫球。适用标准规则。 测试用例 [ "a", "b" ] => 1 [ "a", "b", "c" ] => 1 [ "a", "a", "c" ] => 1 [ "abc", "abcd" ] => 1 [ "abc12D5", "abC34d3", "ABC14dabc23DAbC89d"] => …
18 code-golf  string 

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.