33
\$\begingroup\$

Write a program or function that takes in three positive integers, W, H, and N. Print or return a W×H grid of .'s where every Nth . in normal English reading order is replaced with an X.

For example, given W = 7, H = 3, N = 3, the grid is 7 characters wide and 3 high, and every third character reading from the top left is an X:

..X..X.
.X..X..
X..X..X

Similarly, if the input is W = 10, H = 4, N = 5, the output would be:

....X....X
....X....X
....X....X
....X....X

Notes

  • "Normal English reading order" means going left to right on each line, from the top line to the bottom.
  • When N is 1 then all the .'s will become X's.
  • You may use any two distinct printable ASCII characters in place of . and X.
    • If you use space () then trailing spaces are not required when the result would be visually the same. (Empty lines are still required.)
    • You may not using something else in place of the newlines that shape the grid.
  • The exact input format and order of W, H, and N is not super important. Things like [H,W,N] or N\nW,H are alright.
  • A trailing newline in the output is fine.
  • The shortest code in bytes wins!

Examples

W = 5, H = 3, N = 1
XXXXX
XXXXX
XXXXX
W = 5, H = 3, N = 2
.X.X.
X.X.X
.X.X.
W = 5, H = 3, N = 3
..X..
X..X.
.X..X
W = 5, H = 3, N = 4
...X.
..X..
.X...
W = 5, H = 3, N = 5
....X
....X
....X
W = 5, H = 3, N = 6
.....
X....
.X...
W = 5, H = 3, N = 7
.....
.X...
...X.
W = 5, H = 3, N = 15
.....
.....
....X
W = 5, H = 3, N = 16 (or more)
.....
.....
.....
W = 1, H = 1, N = 1
X
W = 1, H = 1, N = 2 (or more)
.
W = 8, H = 6, N = 2
.X.X.X.X
.X.X.X.X
.X.X.X.X
.X.X.X.X
.X.X.X.X
.X.X.X.X
W = 8, H = 6, N = 3
..X..X..
X..X..X.
.X..X..X
..X..X..
X..X..X.
.X..X..X
W = 8, H = 6, N = 4
...X...X
...X...X
...X...X
...X...X
...X...X
...X...X
W = 8, H = 6, N = 7
......X.
.....X..
....X...
...X....
..X.....
.X......
W = 8, H = 6, N = 16
........
.......X
........
.......X
........
.......X
W = 37, H = 1, N = 4
...X...X...X...X...X...X...X...X...X.
W = 1, H = 10, N = 8
.
.
.
.
.
.
.
X
.
.
asked Nov 29, 2015 at 1:50
\$\endgroup\$
2
  • 1
    \$\begingroup\$ Am I correct to assume that the restriction "You may not using something else in place of the newlines that shape the grid" includes "You may not return an array ["..X..X.", ".X..X..", "X..X..X"] as the grid"? \$\endgroup\$ Commented Nov 29, 2015 at 8:32
  • \$\begingroup\$ @PeterTaylor Correct \$\endgroup\$ Commented Nov 29, 2015 at 12:36

30 Answers 30

13
\$\begingroup\$

J, (削除) 9 (削除ここまで) 5 bytes

$":&1

Uses spaces and 1's and expects input in the form H W f N

Explanation:

$":&1
 &1 bonds the fixed right argument 1 to ":
 ": formats the right argument number (1) to take up left argument (N) number of cells
 padding with spaces, resulting in " 1"
$ reshape to H-by-W with repeating the string if necessary 

Usage:

 3 7 ($":&1) 3
 1 1 
 1 1 
1 1 1

Try it online here.

answered Nov 29, 2015 at 8:17
\$\endgroup\$
4
  • \$\begingroup\$ Does it also truncate the array if W*H is less than N? \$\endgroup\$ Commented Nov 29, 2015 at 10:26
  • \$\begingroup\$ @MartinBüttner Yes. \$\endgroup\$ Commented Nov 29, 2015 at 11:13
  • \$\begingroup\$ If the argument is ($":&1), wouldn't that count as 7 bytes? \$\endgroup\$ Commented Nov 29, 2015 at 14:55
  • 1
    \$\begingroup\$ No, the () aren't part of the function; you could write f =. $":&1 and then 3 7 f 3. \$\endgroup\$ Commented Nov 29, 2015 at 15:51
11
\$\begingroup\$

Python 2, 60 bytes

w,h,n=input()
s='%%%dd'%n%0*w*h
exec"print s[:w];s=s[w:];"*h

This prints space and 0 in place of . and X. Input is taken as a tuple in the form of w,h,n.

answered Nov 29, 2015 at 3:41
\$\endgroup\$
1
  • 4
    \$\begingroup\$ That's a clever string format. \$\endgroup\$ Commented Nov 29, 2015 at 4:03
7
\$\begingroup\$

J, 12 bytes

$'X'_1}#&'.'

This is a dyadic function that takes the array H W as its left argument and N as its right argument. Usage:

 f =: $'X'_1}#&'.'
 3 5 f 3
..X..
X..X.
.X..X

Explanation

$'X'_1}#&'.'
 '.' The character '.'
 #& repeated N times
 _1} with the last character
 'X' replaced by 'X'
$ reshaped into an HxW array
answered Nov 29, 2015 at 2:29
\$\endgroup\$
3
  • \$\begingroup\$ Right tool for the job? \$\endgroup\$ Commented Nov 29, 2015 at 2:48
  • \$\begingroup\$ Is the use of X. really shortest? \$\endgroup\$ Commented Nov 29, 2015 at 4:02
  • \$\begingroup\$ @ThomasKwa I believe so. I tried to use the numbers 0 and 1 instead, but then I had to surround the one next to _1 with parentheses, and format away the spaces between columns, and it ended up being longer. \$\endgroup\$ Commented Nov 29, 2015 at 4:17
5
\$\begingroup\$

BBC Basic, 67 ASCII characters, tokenised filesize 43 bytes

Download interpreter at http://www.bbcbasic.co.uk/bbcwin/download.html

INPUTw,h,n:WIDTHw:PRINTLEFT$(STRING$(w*h,STRING$(n-1,".")+"X"),w*h)

BBC basic has a handy command for limiting the field width. We use STRING$ to make w*h copies of the string of n-1 periods followed by an X. Then we use LEFT$ to truncate this to w*h characters.

answered Nov 29, 2015 at 2:12
\$\endgroup\$
4
\$\begingroup\$

Minkolang 0.14, (削除) 34 (削除ここまで) (削除) 30 (削除ここまで) (削除) 28 (削除ここまで) 22 bytes

n2-D1n$zn[z[1Rd6ZO]lO]

Check one case here and check all test cases here. Expects input like N W H.

Explanation

n Take number from input (N)
 2- Subtract 2
 D Duplicate the top of stack (which is 0 because it's empty) N-2 times
 1 Push a 1 onto the stack
n Take number from input (W)
 $z Store W in the register (z)
n Take number from input (H)
 [ Open a for loop that repeats H times
 z[ Open a for loop that repeats W times
 1R Rotate 1 step to the right
 d Duplicate top of stack
 6Z Convert number to string
 O Output as character
 ] Close for loop
 lO Output a newline
 ] Close for loop

As Minkolang's codebox is toroidal, this will wrap around to the beginning. As every n will now take in -1, this eventually crashes with an error and no further output, which is allowed.

answered Nov 29, 2015 at 2:13
\$\endgroup\$
2
  • \$\begingroup\$ So it's easy for you to compare. (Note that it's not quite the exact same code.) \$\endgroup\$ Commented Nov 29, 2015 at 2:20
  • \$\begingroup\$ Ahead of you! :P :) \$\endgroup\$ Commented Nov 29, 2015 at 2:23
4
\$\begingroup\$

CJam (16 bytes)

{1$*,:)@f%:!/N*}

Takes input on the stack in the order N W H, returns string using characters 0 and 1. Online demo

Dissection

{ e# Anonymous function. Stack: N W H
 1$*, e# Stack: N W [0 1 ... W*H-1]
 :) e# Stack: N W [1 2 ... W*H]
 @f% e# Stack: W [1%N 2%N ... W*H%N]
 :! e# Map Boolean not, taking 0 to 1 and anything else to 0
 / e# Split into W-sized chunks (i.e. the lines of the grid)
 N* e# Join the lines with newlines
}
answered Nov 29, 2015 at 8:31
\$\endgroup\$
1
  • \$\begingroup\$ ;-; you beat me ;-; but good job! :D \$\endgroup\$ Commented Nov 29, 2015 at 13:30
4
\$\begingroup\$

APL, 13 bytes

{⍪,/⍕ ̈⍺⍴⍵=⍳⍵}

This takes H W as the left argument and N as the right argument.

Explanation:

{⍪,/⍕ ̈⍺⍴⍵=⍳⍵} Dyadic function (args are ⍺ on left, ⍵ on right):
 ⍵=⍳⍵ ⍵ = (1 2 3...⍵); this is ⍵-1 0s followed by a 1
 ⍺⍴ Shape by the left argument; e.g. 5 3 gives a 5x3 array
 ⍕ ̈ Stringify each entry
 ,/ Join the strings in each row 
 ⍪ Make column vector of strings

Try it online: first test cases, last test case. Note that although this shows boxed output, my copy of Dyalog doesn't.

answered Nov 29, 2015 at 3:04
\$\endgroup\$
4
  • \$\begingroup\$ Are those actually just boxes, or is the SE app not displaying the characters properly? \$\endgroup\$ Commented Nov 29, 2015 at 18:22
  • \$\begingroup\$ @Carcigenicate They're not boxes. The characters should display fine on the online link, because it has a different font. \$\endgroup\$ Commented Nov 29, 2015 at 18:45
  • \$\begingroup\$ Ahh, right. I missed that. Do you have a special keyboard or are you a masochist? \$\endgroup\$ Commented Nov 29, 2015 at 18:47
  • \$\begingroup\$ @Carcigenicate On tryapl (and Dyalog student edition) you can type APL characters using backticks. `a turns into ⍺, for example. \$\endgroup\$ Commented Nov 29, 2015 at 18:51
2
\$\begingroup\$

CJam, 20 Bytes

q~:Z;_@*,:){Z%!}%/N*

Takes input as H W N.

answered Nov 29, 2015 at 2:00
\$\endgroup\$
4
  • \$\begingroup\$ whoops, invalid \$\endgroup\$ Commented Nov 29, 2015 at 2:03
  • \$\begingroup\$ fixed :D :D :D :D \$\endgroup\$ Commented Nov 29, 2015 at 2:08
  • \$\begingroup\$ Still much longer than some of the solutions in other languages, but I got it to 18 bytes with CJam: q~_@*,@(S*'X+f=/N*, with input in order N H W. \$\endgroup\$ Commented Nov 29, 2015 at 4:53
  • 1
    \$\begingroup\$ @RetoKoradi Take another one off by replacing 'X with 0, and that'll be 17 \$\endgroup\$ Commented Nov 29, 2015 at 5:08
2
\$\begingroup\$

K, (削除) 21 (削除ここまで) (削除) 19 (削除ここまで) (削除) 18 (削除ここまで) 14 bytes

Takes arguments as (H W;N):

{".X"x#y=1+!y}

In action:

 f:{".X"x#y=1+!y};
 f.'((3 5;1);(3 5;2);(3 7;3);(4 10;5);(3 5;16))
(("XXXXX"
 "XXXXX"
 "XXXXX")
 (".X.X."
 "X.X.X"
 ".X.X.")
 ("..X..X."
 ".X..X.."
 "X..X..X")
 ("....X....X"
 "....X....X"
 "....X....X"
 "....X....X")
 ("....."
 "....."
 "....."))
answered Nov 29, 2015 at 2:30
\$\endgroup\$
2
\$\begingroup\$

MATLAB, (削除) 61 55 (削除ここまで) 54 bytes

function c=g(d,n);b=ones(d);b(n:n:end)=0;c=[b'+45,''];

Wow, I thought MATLAB would be competitive in this one, but how wrong I was!

The function creates an array of 1's of the correct dimensions, and then sets every n'th element to be 0 (MATLAB implicitly handles wrapping around the indices into 2D). We then add on 45 ('-') to this number and converted to a char array to be returned.

The questions allows any distinct two ASCII characters to be used for the grid, I am using '-' in place of 'x' to save some bytes. The input format is also not fixed, so it should be supplied as [w h],n - i.e. an array of width and height, and then n as a second parameter.


This also works with Octave and can be tried online here. The function is already set up in the linked workspace, so you can simply call for example:

g([4,5],3)

Which outputs:

..-.
.-..
-..-
..-.
.-..
answered Nov 29, 2015 at 2:33
\$\endgroup\$
2
  • \$\begingroup\$ Save one byte: c=[b'+45,'']; \$\endgroup\$ Commented Nov 29, 2015 at 9:21
  • \$\begingroup\$ @StewieGriffin Thanks :). For some reason when I'd tried that I didn't think it saved any bytes, I must have miscounted! \$\endgroup\$ Commented Nov 29, 2015 at 13:43
2
\$\begingroup\$

Processing, 93 bytes (Java, 104 bytes)

void f(int a,int b,int c){for(int i=0;i<a*b;i++)print((i%c>c-2?"X":".")+(i%a>a-2?"\n":""));}}

The reason I used Processing instead of Java is that you don't need to acces the pointer by tiping System.out because a local variable is directly accessible. I earned 11 bytes with this. The function doesn't return the result but prints it.

answered Nov 29, 2015 at 14:38
\$\endgroup\$
1
  • 2
    \$\begingroup\$ You can save another by moving the increment (like i++%a...), and it looks like you left a spare } at the end you don't need, also. \$\endgroup\$ Commented Dec 7, 2015 at 14:28
2
\$\begingroup\$

Japt, (削除) 33 (削除ここまで) (削除) 32 (削除ここまで) (削除) 27 (削除ここまで) 25 bytes

SpW-1 +Q p-~U*V/W f'.pU)·

Takes input in format W H N. Uses and " in place of . and X, respectively. Try it online!

Ungolfed and explanation

SpW-1 +Q p-~U*V/W f'.pU)·qR
 // Implicit: U = width, V = height, W = interval
SpW-1 +Q // Create a string of W - 1 spaces, plus a quotation mark.
p-~U*V/W // Repeat this string ceil(U*V/W) times.
f'.pU) // Split the resulting string into groups of U characters.
qR // Join with newlines.
 // Implicit: output last expression

Suggestions welcome!

answered Nov 29, 2015 at 2:02
\$\endgroup\$
2
\$\begingroup\$

Vitsy, (削除) 25 (削除ここまで) (削除) 23 (削除ここまで) (削除) 22 (削除ここまで) (削除) 21 (削除ここまで) 19 Bytes

Thanks to @Sp3000 for pointing out that I don't need a duplicate and saving me 2 bytes!

Takes input as N W H. Try it online!

1}0円XrV\[V\[{DN]aO]
1 Push 1 to the stack.
 } Push the backmost to the front and subtract 2.
 0円X Duplicate the 0 temp variable times.
 r Reverse the stack.
 V Save as final global variable.
 \[ ] Repeat top item times.
 V\[ ] Repeat global variable times.
 {DO Duplicate, output, then shift over an item.
 aO Output a newline.
answered Nov 29, 2015 at 2:03
\$\endgroup\$
2
\$\begingroup\$

K (ngn/k), 10 bytes

{y#|x$"X"}

Try it online!

Takes input as two arguments; N as the first/left arg, and (H;W) as the second/right arg. Uses " " and "X" as the output characters.

  • |x$"X" right pad "X" to the desired length (fills with spaces), and reverse it (to put the "X" at the end)
  • y# reshape the above to the desired dimensions; the above gets repeated over and over until it is long enough
answered Jan 31, 2024 at 14:14
\$\endgroup\$
1
\$\begingroup\$

Pyth - (削除) 19 (削除ここまで) (削除) 18 (削除ここまで) 17 bytes

Hope to golf it more. Takes input as N\n[W, H].

jc.[k+*dtvzN*FQhQ

Test Suite.

answered Nov 29, 2015 at 1:57
\$\endgroup\$
1
\$\begingroup\$

R, 66 bytes

function(w,h,n){x=rep(".",a<-w*h);x[1:a%%n<1]="X";matrix(x,h,w,T)}

This is a function that accepts three integers and returns a matrix of character values. To call it, assign it to a variable.

Ungolfed:

f <- function(w, h, n) {
 # Get the area of the square
 a <- w*h
 # Construct a vector of dots
 x <- rep(".", a)
 # Replace every nth entry with X
 x[1:a %% n == 0] <- "X"
 # Return a matrix constructed by row
 matrix(x, nrow = h, ncol = w, byrow = TRUE)
}
answered Nov 29, 2015 at 6:24
\$\endgroup\$
1
\$\begingroup\$

JavaScript (ES6), (削除) 65 (削除ここまで) 60 bytes

(w,h,n)=>eval('for(i=r=``;i++<w*h;i%w?0:r+=`\n`)r+=i%n?0:1')

Explanation

(w,h,n)=>eval(' // use eval to remove need for return keyword
 for(
 i= // i = current grid index
 r=``; // r = result
 i++<w*h; // iterate for each index of the grid
 i%w?0:r+=`\n` // if we are at the end of a line, print a newline character
 // note: we need to escape the newline character inside the template
 ) // string because this is already inside a string for the eval
 r+=i%n?0:1 // add a 0 for . or 1 for X to the result
 // implicit: return r
')

Test

W = <input type="number" id="W" value="7" /><br />
H = <input type="number" id="H" value="3" /><br />
N = <input type="number" id="N" value="3" /><br />
<button onclick="result.innerHTML=(
(w,h,n)=>eval('for(i=r=``;i++<w*h;i%w?0:r+=`\n`)r+=i%n?0:1')
)(+W.value,+H.value,+N.value)">Go</button>
<pre id="result"></pre>

answered Nov 29, 2015 at 7:23
\$\endgroup\$
1
\$\begingroup\$

Mathematica, 85 bytes

""<>(#<>"
"&/@ReplacePart["."~Table~{t=# #2},List/@Range[#3,t,#3]->"X"]~Partition~#)&

As with many other solutions, this creates a single row, then partitions it.

answered Nov 29, 2015 at 12:41
\$\endgroup\$
1
\$\begingroup\$

JavaScript (ES6), 55 bytes

(w,h,n)=>(f=i=>i++<w*h?+!(i%n)+(i%w?"":`
`)+f(i):"")(0)

Uses the IIFE f to loop to save a return statement.

Output for w=5, h=3, n=7:

00000
01000
00010
answered Nov 29, 2015 at 12:42
\$\endgroup\$
1
\$\begingroup\$

C#, 185 bytes

using System;class x{void a(int w,int h,int n){int c=1;for(int i=0;i<h;i++){for(int j=1;j<=w;j++){if(c%n==0){Console.Write("x");}else{Console.Write(".");}c++;}Console.WriteLine();}}}

For a more readable Reading:

using System;
class x
{
 void a(int w, int h, int n)
 {
 int c = 1;
 for (int i = 0; i < h; i++)
 {
 for (int j = 1; j <= w; j++)
 {
 if (c % n == 0)
 {
 Console.Write("x");
 }
 else
 {
 Console.Write(".");
 }
 c++;
 }
 Console.WriteLine();
 }
 }
}

Usage:

new x().a(7, 3, 3);
answered Dec 1, 2015 at 18:47
\$\endgroup\$
1
\$\begingroup\$

Vyxal 3 Rj, 7 bytes

×ばつv?Ḋ1Ẇ"

Try it Online!

input as H, W, N

×ばつƛ ] # ‎⁡Map over the range H x W
 ?Ḋ # ‎⁢Divisible by N?
 1Ẇ" # ‎⁣Split into chunks of length W and join on nothing
# ‎⁤j flag joins on newlines
💎

Created with the help of Luminespire.

answered Jan 31, 2024 at 13:24
\$\endgroup\$
0
\$\begingroup\$

Julia, 50 bytes

f(w,h,n)=reshape([i%n<1?"X":"." for i=1:w*h],w,h)'

This creates a function f that accepts three integers and returns a 2-dimensional array of strings.

Ungolfed:

function f(w::Integer, h::Integer, n::Integer)
 # Construct an array of strings in reading order
 a = [i % n == 0 ? "X" : "." for i = 1:w*h]
 # Reshape this columnwise into a ×ばつh array
 r = reshape(a, w, h)
 # Return the transpose
 return transpose(r)
end
answered Nov 29, 2015 at 21:35
\$\endgroup\$
0
\$\begingroup\$

Ruby, (削除) 67 (削除ここまで) 56 bytes

->w,h,n{(1..h).map{(1..w).map{o,$.=$.%n<1?1:0,$.+=1;o}}}

Printing an array since it is accepted.

67 bytes

->w,h,n{i=1;puts (1..h).map{(1..w).map{o,i=i%n<1?1:0,i+=1;o}.join}}

Ungolfed:

-> w, h, n {
 (1..h).map {
 (1..w).map {
 o, $. = $.%n < 1 ? 1 : 0, $.+ = 1
 o
 }
 }
}

Usage:

->w,h,n{(1..h).map{(1..w).map{o,$.=$.%n<1?1:0,$.+=1;o}}}[8,6,7]
=> [[0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0]]
answered Nov 29, 2015 at 8:24
\$\endgroup\$
0
\$\begingroup\$

MATLAB, 44 bytes

Note: Very different approach than the one used by Tom Carpenter.

@(x,y)char(reshape(~mod(1:prod(x),y),x)'+46)

Defines an anonymous function that accepts inputs as [W,H],N. I approached this problem using not-the-modulo-of-N for an array 1:W*H and then simply reshaping the solution to a two-dimensional array, which is then converted to a character array.

Example output for [5,3],7:

.....
./...
.../.
answered Dec 7, 2015 at 15:47
\$\endgroup\$
0
\$\begingroup\$

Common Lisp, SBCL, 94 bytes

(lambda(a b c)(dotimes(i(* a b))(format t"~:[.~;X~]~@[~%~]"(=(mod(1+ i)c)0)(=(mod(1+ i)a)0))))

Explanation

~:[.~;X~] <-- takes argument - if argument is true write ., if false write X
~@[~%~] <-- takes argument - if argument is true write newline, if not treat argument as if it was not used

(=(mod(1+ i)c)0)(=(mod(1+ i)a)0) looks pretty silly (because it's so similiar but I don't know if it can be solved, saving bytes

I use (1+ i) instead of i because dotimes starts from i=0 and I want to start from 1. It is also helpful because I can use (* a b) instead of (1+(* a b))

answered Feb 15, 2017 at 22:26
\$\endgroup\$
0
\$\begingroup\$

Japt -R, 9 bytes

Takes input as [W,H],N and uses spaces instead of .s & "s instead of Xs.

×ばつîQùV)òUÎ

Try it

answered Oct 23, 2020 at 15:12
\$\endgroup\$
0
\$\begingroup\$

Uiua, 17 bytes

↯⇌⊟⊙⊙(⇌⊂@X↯:@.-1)

Test pad

answered Jan 31, 2024 at 15:19
\$\endgroup\$
0
\$\begingroup\$

Perl 5 -a, 44 bytes

print$_%$F[1]&&1,$/x!($_%"@F")for 1.."@F"*<>

Try it online!

Input format is:

W N
H

Output uses 1 for the spacer and 0 for the character.

answered Jan 31, 2024 at 15:37
\$\endgroup\$
0
\$\begingroup\$

AWK, 45 bytes

{for(;i++<1ドル*2ドル;)printf(i%3ドル?0:1)(i%1ドル?X:RS)}

Attempt This Online!

Input: 7 3 3 Output:

0010010
0100100
1001001
answered Aug 23 at 17:57
\$\endgroup\$
-1
\$\begingroup\$

Java, (削除) 185 (削除ここまで) 183 bytes

Thanks Thomas Kwa, for saving me 2 bytes!

interface B{static void main(String[] a){int w = Byte.parseByte(a[0]);for(int i=0;i++<w*Byte.parseByte(a[1]);)System.out.print((i%Byte.parseByte(a[2])>0?".":"X")+(i%w<1?"\n":""));}}

Ungolfed (ish):

interface A {
 static void main(String[] a) {
 int w = Byte.parseByte(a[0]);
 for(
 int i = 0;
 i++ < w*Byte.parseByte(a[1]);
 )
 System.out.print((
 i%Byte.parseByte(a[2]) > 0 ? "." : "X"
 )+(
 i%w < 1 ? "\n" : ""
 ));
 }
}

Usage:

$ java B 5 3 7
.....
.X...
...X.

Maybe java will win one day :P

answered Nov 30, 2015 at 0:39
\$\endgroup\$
2
  • \$\begingroup\$ I think you can use >0 instead of !=0, and <1 instead of ==0. \$\endgroup\$ Commented Nov 30, 2015 at 0:44
  • \$\begingroup\$ You can remove useless whitespace after String[] and around = to get -3 bytes down \$\endgroup\$ Commented Jan 31, 2024 at 15:21

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.