Excel表列序号
题目:
思路:
【1】这道题乍看一下会觉得有点懵逼,但转化一下,便可以看成是多进制转10进制的样子:
//在二进制中,101这种可以看作为 2**2*1+2**1*0+2**0*1 那么对应转化为 A = 26**0*1 = 1*1 = 1 AB = 26**1*1 + 26**0*2 = 26*1 + 1*2 = 28 ZY = 26**1*26 + 26**0*25 = 26*26 + 1*25 = 676 + 25=701
【2】思路有了,便是转为数学公式,那么就要考虑限制了最大值FXSHRXW的计算是否超过了Integer.MAX_VALUE
代码展示:
public int titleToNumber(String columnTitle) { char[] chars = columnTitle.toCharArray(); int length = chars.length; int sum = 0; for (int i = 0; i < chars.length; i++) { sum += (chars[i]-'A'+1) * (int)Math.pow(26,length-i-1); } return sum; }