这的孪生兄弟。
FizzBuzz是取一系列正整数的地方,用"Fizz“代替可被3整除的数字,用"Buzz”代替可被5整除的数字,用"FizzBuzz“代替可被15整除的数字。例如,从1到10的FizzBuzz是1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz
。
您的挑战是,给出一个Buzzes、Buzzes、FizzBuzzes和一个表示整数的值(我将使用Int)的列表,以确定是否可以将其排列为有效的FizzBuzz。
例如,可以将Int, Fizz, Fizz, Buzz
安排为有效的Fizz, Buzz, Int, Fizz
(例如,9、10、11、12)。但是Buzz, Fizz, Buzz
不能这样做,因为两个Buzz
需要有五个值。
您可以选择任意四个值来表示Fizz、Buzz、FizzBuzz和Int。
这是密码-高尔夫,最短的胜利!
Int, Int, Fizz
Fizz, Int, Fizz, Buzz
Fizz, Fizz, Fizz, Int, Int, Int, Buzz
Buzz, Int, Int, Int, Fizz, FizzBuzz
FizzBuzz, Int, Int, Int, Int
Buzz, FizzBuzz, Fizz
Buzz, Fizz, Buzz
Int, Int, Int
Fizz, Int, Fizz
FizzBuzz, Int, Int, Buzz, Fizz
Int, Int, Fizz, Fizz, Fizz, Buzz, Buzz
发布于 2022-06-29 01:35:02
L₄+v₍₃₅ÞS?Ṗ↔ḃ
在网上试试!超慢。[0,0]
用于Int
,[1,0]
用于Fizz
,[0,1]
用于Buzz
,[1,1]
用于FizzBuzz
。
L₄*v₍₃₅ÞS?Ṗ↔ḃ
L₄+ # Length of input + 26 (14 would be enough, but 26 is one byte)
v₍₃₅ # For each in range [1, that], calculate [n % 3 == 0, n % 5 == 0]
ÞS # All sublists
↔ # Keep only lists that are in...
?Ṗ # The permutations of the input
ḃ # Is this truthy? (does it have at least one element?)
发布于 2022-06-29 02:01:21
期望0
用于Int,1
用于Fizz,2
用于Buzz,3
用于FizzBuzz。返回0
或1
。
这是与我对另一个挑战的回答中相同的算法。
f=(a,i=k=15)=>k--&&a.sort().map(_=>++i%3<1|2*!(i%5)).sort()+''==a|f(a,k)
f = ( // f is a recursive function taking:
a, // a[] = input array
i = // i = index in the FizzBuzz sequence
k = 15 // k = counter
) => //
k-- && // decrement k; abort if it was 0
a.sort() // normalize a[] by sorting it in lexicographical order
.map(_ => // for each value in a[]:
++i % 3 < 1 | // generate the FizzBuzz sequence,
2 * !(i % 5) // starting at i + 1
) // end of map()
.sort() // normalize this new array
+ '' == a | // coerce it to a string and compare it with a[]
f(a, k) // recursive call with i set to the new value of k
发布于 2022-06-29 01:56:39
def v(r,l,k=[]):
if not r:yield k
for i,a in enumerate(l):
if r[0]%(a|1)<1:yield from v(r[1:],l[:i]+l[i+1:],k+[a])
def f(l,c=0):
while(c:=c+1)<sum(i**2for i in l):
if next(v(range(c,c+len(l)),l),0):return 1
https://codegolf.stackexchange.com/questions/249235
复制相似问题