大多数语言都带有内置功能,可以在字符串中搜索所有出现的给定子字符串,然后用另一个替换。我不知道有什么语言可以将此概念推广为(不一定是连续的)子序列。因此,这就是您面临的挑战。
输入将包含三个字符串A
,B
和C
,其中B
和C
保证长度相同。如果B
出现为子序列,A
则应替换为C
。这是一个简单的示例:
A: abcdefghijklmnopqrstuvwxyz
B: ghost
C: 12345
可以这样处理:
abcdefghijklmnopqrstuvwxyz
|| | ||
abcdef12ijklmn3pqr45uvwxyz
如果有几种查找子B
序列的方法,则应贪婪地替换最左边的子序列:
A: abcdeedcba
B: ada
C: BOB
Result: BbcOeedcbB
and NOT: BbcdeeOcbB
如果B
可以在多个不相交的地方找到,则同样适用:
A: abcdeedcbaabcde
B: ed
C: 12
Result: abcd1e2cbaabcde
and NOT: abcd112cbaabc2e (or similar)
当B
没有出现时A
,您应该输出A
不变。
规则
如上所述,采取三个串A
,B
和C
作为输入和替换的最左边的发生B
在作为子A
带C
,如果有的话。
您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。
您可以按照在答案中指定的任何一致顺序选择三个字符串。您可以假设B
且C
具有相同的长度。所有字符串将仅包含字母数字字符。
适用标准代码高尔夫球规则。
测试用例
每个测试用例是四行:A
,B
,C
随后的结果。
abcdefghijklmnopqrstuvwxyz
ghost
12345
abcdef12ijklmn3pqr45uvwxyz
abcdeedcba
ada
BOB
BbcOeedcbB
abcdeedcbaabcde
ed
12
abcd1e2cbaabcde
121
121
aBc
aBc
abcde
acb
123
abcde
ABC
ABCD
1234
ABC
012345678901234567890123456789
42
TT
0123T5678901T34567890123456789
edcbaedcbaedcbaedcba
abcde
12345
edcbaedcbaedcbaedcba
edcbaedcbaedcbaedcbaedcba
abcde
12345
edcb1edc2aed3bae4cba5dcba
daccdedca
ace
cra
dcrcdadca
aacbcbabcccaabcbabcaabbbbca
abaaaccbac
1223334444
aacbcbabcccaabcbabcaabbbbca
aacbcbabcccaabcbabcaabbbbcac
abaaaccbac
1223334444
1ac2cb2bccc33b3bab4aa4bbbc44
排行榜
这篇文章底部的Stack Snippet通过答案a)生成了排行榜,a)是每种语言的最短解决方案列表,b)则是总体排行榜。
为确保您的答案显示出来,请使用以下Markdown模板以标题开头。
## Language Name, N bytes
N
您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如:
## Ruby, <s>104</s> <s>101</s> 96 bytes
如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字:
## Perl, 43 + 2 (-p flag) = 45 bytes
您还可以将语言名称设置为链接,然后该链接将显示在代码段中:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
[[1], [2], [3]]
。