Skip to main content
We’ve updated our Terms of Service. A new AI Addendum clarifies how Stack Overflow utilizes AI interactions.
Code Golf

Return to Answer

added 542 characters in body
Source Link
loopy walt
  • 16.9k
  • 2
  • 12
  • 70

Python 3, (削除) 108 (削除ここまで), 104(削除) 104 (削除ここまで), 97 bytes

-7 by borowing @m90's better control flow

f=lambda M,n=0n=1:n n<len(M)and f(M,n+1)or all(X==[*sum(zip(*n*[X[::n]]),())]for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M))*n

Try it online!

Try it online!Old version

Straight-forward approach; tries successively smaller block sizes until a working one is found.

Old, longer but more readable version:

f=lambda M,n=0:n and all(X[i::n]==X[::n]for i in range(n)for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M)) 

Try it online!

Python 3, (削除) 108 (削除ここまで), 104 bytes

f=lambda M,n=0:n and all(X==[*sum(zip(*n*[X[::n]]),())]for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M))

Try it online!

Straight-forward approach; tries successively smaller block sizes until a working one is found.

Old, longer but more readable version:

f=lambda M,n=0:n and all(X[i::n]==X[::n]for i in range(n)for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M)) 

Try it online!

Python 3, (削除) 108 (削除ここまで), (削除) 104 (削除ここまで), 97 bytes

-7 by borowing @m90's better control flow

f=lambda M,n=1:n<len(M)and f(M,n+1)or all(X==[*sum(zip(*n*[X[::n]]),())]for X in[M,[*zip(*M)]])*n

Try it online!

Old version

Straight-forward approach; tries successively smaller block sizes until a working one is found.

Old, longer but more readable version:

f=lambda M,n=0:n and all(X[i::n]==X[::n]for i in range(n)for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M)) 

Try it online!

added 710 characters in body
Source Link
loopy walt
  • 16.9k
  • 2
  • 12
  • 70

Python 3, 106(削除) 108 (削除ここまで), 104 bytes

lambdaf=lambda M,n=0:n and all(X[i::n]==X[X==[*sum(zip(*n*[X[::n]for i in rangen]]),(n)for)]for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M))

Try it online! Try it online!

Straight-forward approach; tries successively smaller block sizes until a working one is found.

Old, longer but more readable version:

f=lambda M,n=0:n and all(X[i::n]==X[::n]for i in range(n)for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M)) 

Try it online!

Python 3, 106 bytes

lambda M,n=0:n and all(X[i::n]==X[::n]for i in range(n)for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M))

Try it online!

Straight-forward approach; tries successively smaller block sizes until a working one is found.

Python 3, (削除) 108 (削除ここまで), 104 bytes

f=lambda M,n=0:n and all(X==[*sum(zip(*n*[X[::n]]),())]for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M))

Try it online!

Straight-forward approach; tries successively smaller block sizes until a working one is found.

Old, longer but more readable version:

f=lambda M,n=0:n and all(X[i::n]==X[::n]for i in range(n)for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M)) 

Try it online!

Source Link
loopy walt
  • 16.9k
  • 2
  • 12
  • 70

Python 3, 106 bytes

lambda M,n=0:n and all(X[i::n]==X[::n]for i in range(n)for X in[M,[*zip(*M)]])and n or f(M,~-n%-~len(M)) 

Try it online!

Straight-forward approach; tries successively smaller block sizes until a working one is found.

AltStyle によって変換されたページ (->オリジナル) /