30
子序列替换
大多数语言都带有内置功能,可以在字符串中搜索所有出现的给定子字符串,然后用另一个替换。我不知道有什么语言可以将此概念推广为(不一定是连续的)子序列。因此,这就是您面临的挑战。 输入将包含三个字符串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 …