一个使用字符串的简单FizzBuzz。
第一个字或短语中的每一个字或短语,第一个字符的每一次出现替换为fizz,第二个字符中的每一个替换为buzz。
Given: Hello, h, l
Output: FIZZeBuzzBuzzo
Given: test, a, b
Output: test
Given: PCG rocks!, , !
PCGFizzrocksBuzz
Given: This
Is
SPARTA!,
, S
Output: ThiBuzzFizzIBuzzFizzBUZZPARTA!
Given: FizzBuzz, a, b
Output: FizzBUZZuzz这是代码-高尔夫所以最短的代码,以字节为单位,获胜!
技术上处理换行符(这是斯巴达!)是挑战的一部分。然而,我不会因为不包括它而否定答案,因为在某些语言中,这是非常具有挑战性的,甚至是不可能的。
发布于 2017-03-19 06:21:17
lambda s,w:"".join([c,"Fizz","Buzz","BUZZ","FIZZ"][-~w.lower().find(c.lower())*-~(-2*c.isupper())]for c in s)将这两个字符作为单个字符串。
编辑:将测试用例添加到TIO链接中,换行符也能工作。
发布于 2017-03-19 12:44:25
将输入作为字符串和由两个字符组成的数组。支持新行。
f=(s,[a,b],r='Fizz')=>a?f(s.replace(RegExp(a,'gi'),m=>m<'a'?r.toUpperCase():r),[b],'Buzz'):sf=(s,[a,b],r='Fizz')=>a?f(s.replace(RegExp(a,'gi'),m=>m<'a'?r.toUpperCase():r),[b],'Buzz'):s
console.log(f("Hello", ['h', 'l']))
console.log(f("test", ['a', 'b']))
console.log(f("PCG rocks!", [' ', '!']))
console.log(f(`This
Is
SPARTA!`, [`
`, 'S']))
console.log(f("FizzBuzz", ['a', 'b']))发布于 2017-03-19 03:21:52
sXzsrBQ1scL2rB"FizzBuzz"1测试套房。
https://codegolf.stackexchange.com/questions/113282
复制相似问题