Code Golf: Numeric equivalent of an Excel column name
Solution 1:
Excel, 9 chars :)
Use the right tool for the job:
=COLUMN()
Solution 2:
Perl, 36 34 33 31 30 17 15 11 characters
$_=()=A..$_
Usage:
$ echo -n WTF | perl -ple '$_=()=A..$_'
16074
Reduced to 17 by using echo -n to avoid a chop
call.
Reduced to 15 by using say instead of print.
Reduced to 11 by using -p instead of say.
Explanation:
A
is evaluated in string context and A..$_
builds a list starting at "A" and string-incrementing up to the input string. Perl interprets the ++
operator (and thus ..
) on strings in an alphabetic context, so for example $_="AZ";$_++;print
outputs BA
.
=()=
(aka "goatse" operator) forces an expression to be evaluated in list context, and returns the number of elements returned by that expression i.e., $scalar = () = <expr>
corresponds to @list = <expr>; $scalar = @list
.