首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >A,Buzz,C,D,E,Fizz,G

A,Buzz,C,D,E,Fizz,G
EN

Code Golf用户
提问于 2017-03-19 03:05:35
回答 4查看 1.7K关注 0票数 13

一个使用字符串的简单FizzBuzz。

给定的

  • 一个词或短语(字符串)
  • 2个独特字符

输出

第一个字或短语中的每一个字或短语,第一个字符的每一次出现替换为fizz,第二个字符中的每一个替换为buzz。

规则

  • Fizz和Buzz中的第一个字母必须保持大写。
  • 对于其他单词fizz和if,您必须与替换字符的大小写匹配(如果没有大小写,则保持小写)。
  • 如果给定的字符不在短语中,则输出原始短语。

测试用例

代码语言:javascript
复制
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

这是代码-高尔夫所以最短的代码,以字节为单位,获胜!

Note

技术上处理换行符(这是斯巴达!)是挑战的一部分。然而,我不会因为不包括它而否定答案,因为在某些语言中,这是非常具有挑战性的,甚至是不可能的。

EN

回答 4

Code Golf用户

发布于 2017-03-19 06:21:17

Python,109个字节

代码语言:javascript
复制
lambda s,w:"".join([c,"Fizz","Buzz","BUZZ","FIZZ"][-~w.lower().find(c.lower())*-~(-2*c.isupper())]for c in s)

在网上试试!

将这两个字符作为单个字符串。

编辑:将测试用例添加到TIO链接中,换行符也能工作。

票数 4
EN

Code Golf用户

发布于 2017-03-19 12:44:25

JavaScript (ES6),92字节

将输入作为字符串和由两个字符组成的数组。支持新行。

代码语言:javascript
复制
f=(s,[a,b],r='Fizz')=>a?f(s.replace(RegExp(a,'gi'),m=>m<'a'?r.toUpperCase():r),[b],'Buzz'):s

测试用例

代码语言:javascript
复制
f=(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']))
票数 2
EN

Code Golf用户

发布于 2017-03-19 03:21:52

Pyth - 25字节

代码语言:javascript
复制
sXzsrBQ1scL2rB"FizzBuzz"1

测试套房

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/113282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档