我最近在一次工作面试中被要求解决一个我认为会很有趣的编程难题。它是关于将 Excel 列字母转换为实际数字,如果您还记得的话,Excel 用从 A 到 Z 的字母命名其列,然后序列为 AA、AB、AC...AZ、BA、BB 等。
您必须编写一个接受字符串作为参数(如“AABCCE”)并返回实际列号的函数。
解决方案可以是任何语言。
最佳答案
对我来说这听起来像是一个标准的 reduce:
python :
def excel2num(x):
return reduce(lambda s,a:s*26+ord(a)-ord('A')+1, x, 0)
C#:
int ExcelToNumber(string x) {
return x.Aggregate(0, (s, c) => s * 26 + c - 'A' + 1 );
}
关于algorithm - 编程谜语: How might you translate an Excel column name to a number?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/763691/