Questions tagged «string»

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

22
三角剖分文字
编写一个程序或函数,该程序或函数的字符串必须保证只能包含可打印的ASCII字符(空格除外),并且长度必须是正三角形(1、3、6、10、15,...)。 打印或返回相同的字符串,但使用空格将其成形为三角形。一些例子将最好地说明我的意思: 如果输入为,R则输出为 R 如果输入为,cat则输出为 c a t 如果输入为,monk3y则输出为 m o n k 3 y 如果输入为,meanIngfu1则输出为 m e a n I n g f u 1 如果输入为,^/\/|\/[]\则输出为 ^ / \ / | \ / [ ] \ 如果输入是 Thisrunofcharactersismeanttohavealengththatcanbeexpressedasatriangularnumber.Diditwork?Youtellme,Ican'tcountverywell,ok? 那么输出将是 T h i s r u n o f c …

5
使用正则表达式添加数字
我想尝试一种新型的regex高尔夫挑战赛,它要求您用正则表达式替代只解决简单的计算任务。为了使这一切成为可能,减少琐事,您将被允许应用多个替换,一个接一个。 挑战 我们将从简单开始:给定一个包含两个正整数的字符串,用用a分隔的十进制数表示,,产生一个包含它们的总和的字符串,也用十进制数表示。所以,非常简单 47,987 应该变成 1034 您的答案应适用于任意正整数。 格式 每个答案应该是一系列替换步骤,每个步骤都由一个正则表达式和一个替换字符串组成。(可选)对于序列中的每个步骤,您可以选择重复替换,直到字符串停止更改。下面是一个例子提交(它不解决上述问题): Regex Modifiers Replacement Repeat? \b(\d) g |$1 No |\d <none> 1| Yes \D g <empty> No 给定输入123,456,此提交将按如下方式处理输入:第一次替换将被应用一次并产生: |123,|456 现在在循环中应用第二个替换,直到字符串停止更改为止: 1|23,|456 11|3,|456 111|,|456 111|,1|56 111|,11|6 111|,111| 最后,第三次替换被应用一次: 111111 请注意,循环的终止条件是字符串是否更改,而不是正则表达式是否找到匹配项。(也就是说,如果找到匹配项,但替换项与匹配项相同,它也可能会终止。) 计分 您的主要分数将是您提交的替代步骤数。每次重复替换将计为10个步骤。因此,上面的示例将得分1 + 10 + 1 = 12。 在平局(不太可能)的情况下,次要得分是所有步骤的总和。对于每个步骤,请添加正则表达式(不带分隔符),修饰符和替换字符串。对于上述示例,将为(6 + 1 + 3) …

20
打印包含n的第n个素数
这个问题将是找到n第素数的一个转折。 挑战 您必须编写一个程序,该程序将接受一个input n,并输出n第一个质数,该质数的十进制表示形式包含十进制表示n形式。 困惑?这里有些例子。 n=1 Primes: 2, 3, 5, 7, 11 ^1 first prime that contains a 1 Output: 11 n=2 Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23 ^1 ^2 second prime that contains a 2 Output: 23 n=3 Primes: 2, 3, 5, 7, 11, 13, …

30
很长的Terza Rima
描述 输出一个很长的Terza Rima的韵律方案。 输入值 没有。 输出量 ABA BCB CDC DED EFE FGF GHG HIH IJI JKJ KLK LML MNM NON OPO PQP QRQ RSR STS TUT UVU VWV WXW XYX YZY 规则 您可以在使用空格或换行符分隔节之间进行选择,因此: ABA BCB... 要么 ABA BCB ... 每行允许一个尾随空白,一个尾随换行。 输出可以是大写或小写。 这是code-golf,因此每种语言的最短代码(以字节为单位)获胜。

26
制作平方字
挑战 您的任务是创建一个程序,该程序接受任何给定的字符串输入,并以平方格式输出输入。空字符串应返回一个空字符串。 例子 给定输入: golf 您的程序应输出: golf o l l o flog 输入: 123 输出: 123 2 2 321 输入: a 输出: a 输入: Hello, world! 输出(注意,和之间的空格-间隙不只是换行符): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

22
玫瑰让我转22.5
给定一个字符串,它是16点罗盘上的方向之一 以顺时针方向输出紧邻输入方向的两个方向。 具体来说,您需要处理以下(和仅这些)输入/输出对: Input Output N NNW NNE NNE N NE NE NNE ENE ENE NE E E ENE ESE ESE E SE SE ESE SSE SSE SE S S SSE SSW SSW S SW SW SSW WSW WSW SW W W WSW WNW WNW W NW NW WNW NNW …

14
退格并重新输入单词列表
以下是从一个字符串退格并重新键入的方法: 从第一个字符串开始。 最后删除字符,直到结果是第二个字符串的前缀。(这可能需要0步。) 在末尾添加字符,直到结果等于第二个字符串。(这也可能需要0步。) 例如,从fooabc到的路径fooxyz如下所示: fooabc fooab fooa foo foox fooxy fooxyz 任务 给定一个单词列表,编写一个程序,该程序从空字符串到列表中的所有单词依次退格并重新键入,然后返回到空字符串。输出所有中间字符串。 例如,给定输入list ["abc", "abd", "aefg", "h"],输出应为: a ab abc ab abd ab a ae aef aefg aef ae a h 规则 您可以返回或打印字符串列表,也可以返回带有某些定界符的单个字符串。您可以选择包括初始和最终的空字符串。确保输入至少包含一个单词,并且每个单词只能包含小写ASCII字母(a– z)。编辑:保证输入中的连续字符串彼此不相等。 这是代码高尔夫球;以字节为单位的最短代码获胜。 Python 3中的参考实现:在线尝试!
38 code-golf  string 

30
从babbab到zyzyz的每个词
您的任务是编写一个程序,该程序将输出具有以下结构的每五个字母单词的可读列表: 辅音-元音-辅音-元音 输出应按字母顺序排序,每行一个单词,并且没有重复的单词两次。可以是小写或大写,但不能混合使用。因此,列表可以像这样开始和结束: babab babac babad ... zyzyw zyzyx zyzyz 元音是一个 - ë - 我 - Ø - ü - Ÿ,其他20个英文字母都是辅音字母。 单词不一定是实际的词典单词。 最短的代码胜出。 注意:几年前,我在大学网站上偶然发现了一个完全符合此要求的程序。原来我的名字和姓氏符合cvcvc约束,我一直在自我搜索。

4
宝贝,你是古罗马作家
日语的罗马化将日语文本转换为拉丁字符。在此挑战中,将为您提供一串日文字符作为输入,并期望将其转换为正确的ASCII字符串。 您需要知道什么 日语有三种书写系统:平假名(弯曲的用于简短单词),片假名(用于从其他语言借来的声音和单词的角形)和汉字(最初来自中文的密集字符)。在这个挑战中,我们将只担心平假名。 平假名音节中有46个字符。每个字符代表一个音节。字符按第一声音(辅音)和第二声音(元音)组织。按顺序排列的列是aiueo。 : あいうえお k: かきくけこ s: さしすせそ t: たちつてと n: なにぬねの h: はひふへほ m: まみむめも y: や ゆ よ r: らりるれろ w: わ を N: ん (如果复制并粘贴此表,请注意,我已使用表意空格U + 3000来分隔y和w) 因此,例如あとめ应该产生的输出atome。第一个是a,第二个是to,第三个是me。 例外情况 像任何一种好的语言一样,日语也有其规则的例外,而平假名表也有几种例外。这些字符的发音与其在表中的位置所暗示的略有不同: し:shi,not si ち:chi,not ti つ:tsu,not tu ふ:fu,nothu 达库ten “ dakuten”一词的意思是“泥泞的印记”:dakuten将声音转换成它们的浊音(通常);例如,かka变成か゛ga。更改的完整列表: k→交通g s→交通z t→交通d h→交通b 例外也会发生变化:し゛:(ji或zhi),不是zi …

1
修复Meeesesessessesseesseesseesseseded upp teeexexextext
这是受星期一迷你高尔夫#6:Meeesesessess upp teeexexextext启发的 背景 ETHproductions很难在他通常的网页上输入文本。每当他使用数字或字母时,文本都会被注释掉。您的任务是帮助他键入内容,从而实现正常的行为。 转变 转换影响[0-9A-Za-z]由任何非字母数字字符分隔的字母数字()字符的运行。在下面的示例中,第一行将转换为第二行(其他行显示了转换的细分) An12num: Annn1n12n12nn12nn12nun12nun12numn12num A nn n1 n12 n12nn12n n12nun12nu n12numn12num 特别是,运行中第一个字符之后的任何字母数字字符都将转换为到目前为止的整个运行,除了第一个字符。此外,如果字符是字母(而不是数字),则该字符将变成两次运行。 值得庆幸的是,退格键将删除最后一个字符,并重置运行的开始。 任务 这次您的任务是不执行转换。相反,给定输入字符串,您必须返回编码后的文本,如果转换后将导致输入。输出必须尽可能短,\<char>以单个字符计。 文本编码如下: \ -> \\ backspace character -> \b linefeed -> \n 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 测试用例 每个测试用例都是两行,第一行是输入,第二行是输出。 Heeeeeelp me. It shouldn't be messed up. Hee \blp\b me\b. It\b sh\bou\bld\bn't be\b me\bss\bed\b up\b. alert("Hello, …
38 code-golf  string 

17
花环化
花环的话 一个花环字是可以像一个花环被串成一个词,因为它与它开头相同的字母结束。这些字母甚至可以重叠! 例如,underground是花环顺序词3,因为它以相同的3个字符开头和结尾und。这意味着它可以像一样串在一起undergroundergrounderground...。 alfalfa也是花环字!它的阶数为4。它的开始和结束是alfa。它可以串在一起,像这样:alfalfalfalfa。 我称其为“ n花环化”的过程是,一旦确定花环词的顺序,就采用原始词并添加使它循环成花环n时间所需的句段。因此,由于onion是顺序2花环词,您需要onion将第一个2字母切掉,ion然后将其添加到结束2时间中onionionion。 目的 制作一个程序或函数,该程序或函数从标准输入或函数自变量中获取输入,并打印出或返回经过加字处理的单词。 所有单词均为小写,单词的最高顺序为length(word) - 1。 示例I / O "onion" --> "onionionion" "jackhammer" --> "jackhammer" "abracadabra" --> "abracadabracadabracadabracadabracadabra" "" --> "" "zvioz" --> "zviozvioz" "alfalfa" --> "alfalfalfalfalfalfa" "aaaa" --> "aaaaaaa" 这是code-golf,因此最少的字节数获胜。
38 code-golf  string 

3
解决魔方
编写最短的程序,以在合理的时间范围内移动并解决Rubik的多维数据集(3 * 3 * 3)(例如,在您的计算机上最多5秒,而最多移动1000秒)。 输入的格式为: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (此特定输入表示已解决的多维数据集)。 前12个2个字符的字符串是UF,UR,... BL位置中的边(U =上,F =前,R =右,B =后,L =左,D =下),然后是下8个3个字符的字符串是UFR,URB,... DBR位置中的角。 输出应以这种格式给出一系列移动: D+ L2 U+ F+ D+ L+ D+ F+ U- F+ 其中D1或D +代表将D(下)面顺时针旋转90度,L2代表将L面旋转180度,U3或U-代表将U面逆时针旋转90度。 字母不区分大小写,空格是可选的。 …

30
在大海捞针中找针
给定一个矩形干草堆,该干草堆的大小至少为2x2,由所有相同的可打印ASCII字符组成,请输出针的位置(从左上数起),该针为不同的字符。 例如,如果输入以下干草堆: ##### ###N# ##### ##### 输出应该是3,1零索引时(我将在此挑战中使用的东西)或4,2单索引时。 干草堆可以由任何可打印的ASCII字符组成: ^^^ ^^^ ^N^ ^^^ ^^^ ^^^ 输出: 1,2 针将是任何其他可打印的ASCII字符: jjjjjj j@jjjj jjjjjj 输出 1,1 也可以在拐角处插入针头: Z8 88 输出 0,0 88 8Z 输出 1,1 或将针头放在边缘: >>>>>>>>>> >>>>>>>>>: >>>>>>>>>> 输出 9,1 规则和说明 输入和输出可以通过任何方便的方法给出。这意味着您可以将输入作为字符列表,单个字符串等。 您可以将结果打印到STDOUT或将其作为函数结果返回。请在您的提交中说明输出的顺序(即在挑战中使用的是水平然后是垂直,反之亦然)。 完整的程序或功能都是可以接受的。 您不会选择要使用的字符。那就是挑战。 干草堆的大小至少要保证为2x2,因此毫无疑问,哪个是针,哪个是干草。 输入中只有一根针,而且只有一个字符。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。
38 code-golf  string 

30
打印不可见的文字
给定一个字符串作为输入,输出等于该字符串长度的多个空格字符(0x0A和0x20)。 例如,给定字符串,Hello, World!您的代码将只需要输出13个空格字符,而无需输出其他任何字符。这些可以是空格和换行符的任意组合。 您的代码不应输出任何其他尾随换行符或空格。 测试用例: Input -> Amount of whitespace to output "Hello, World!" -> 13 "Hi" -> 2 " Don't Forget about Existing Whitespace! " -> 45 "" -> 0 " " -> 13 " " -> 1 得分: 这是代码高尔夫球,因此最少的字节数获胜!
38 code-golf  string 

7
修正我的IPv4地址的缺失期
有时,当我输入一个IPv4地址时,我会正确地输入所有数字,但忘记输入一个或多个句点。我想要一个程序(或函数),该程序可以使用损坏的IPv4地址并输出缺失期的所有可能有效位置。 输入值 输入将始终是一个字符串,该字符串是有效IPv4地址的转换(请参见下面的详细信息)。它总是将仅通过消除一个或多个时期字符来进行转换。 您的提交不需要处理此格式以外的输入。 输出量 代表所有有效IPv4地址的字符串的集合或列表(没有特定的顺序或格式),可以通过在输入中插入句点字符来从输入中创建所有有效的IPv4地址。 输出可以是语言本机列表或其他有序或无序集合类型。 替代地,它可以是以某种明确方式界定的IPv4地址的字符串序列。 如果您使用单字符定界符来分隔字符串,则不允许使用句点和数字作为该单字符定界符。我认识到,与数字不同,句点作为分隔符不是模棱两可的(因为每个第四个句点都必须是分隔符),但是出于可读性考虑,我不允许这样做。 IPv4地址格式 尽管IPv4地址实际上只是四个二进制八位字节的序列,但此挑战使用了受限的点分十进制格式。 IPv4地址是由三个句点分隔的四个十进制值。 每四个值的范围是0到255,包容性。 任何数字值都不允许前导零。(独立单字符0被允许;开始与零的任何其它数量不是:052,00等) 测试用例 输入在第一行上,输出在第二行上(此处,结构是用逗号分隔的带引号的字符串列表,用逗号分隔,并用包围[ ],但是您可以使用上面指定的任何合理的格式或结构)。一些示例在第三行上有注释,以突出显示特定规则的应用。 192.168.1234 ["192.168.1.234", "192.168.12.34", "192.168.123.4"] 192.1681234 ["192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"] (Note: 192.1681.2.34 (etc.) is illegal because 1681 is greater than 255) 1921681.234 ["19.216.81.234", "192.16.81.234", "192.168.1.234"] 1921681234 ["19.216.81.234", "192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"] 192.168.1204 ["192.168.1.204", "192.168.120.4"] …

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.