代码Golf:Excel列名的数值等效

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

挑战

将输出Excel列字符串的等效数值的按字符计数的最短代码。

例如,A列为1,B是2,以此类推。一旦你击中Z,下一列将成为AA,然后AB诸若此类

测试用例:

A:    1
B:    2
AD:   30
ABC:  731
WTF:  16074
ROFL: 326676

代码计数包括输入/输出(即完整程序)。

提问于
用户回答回答于

$_=()=A..$_

用法:

$ echo -n WTF | perl -ple '$_=()=A..$_'
16074

通过使用echo-n来避免chop打电话。

减少到15,使用Say而不是打印。

通过使用-p而不是说减少到11。

说明:A在字符串上下文中计算,并且A..$_构建一个从“A”开始的列表,并将其递增到输入字符串。Perl解释++运算符(因此..)在字母上下文中的字符串上,例如$_="AZ";$_++;print产出BA...

=()=强制在列表上下文中计算表达式,并返回该表达式返回的元素数,即,$scalar = () = <expr>对应于@list = <expr>; $scalar = @list...

用户回答回答于

扫码关注云+社区