我讨厌这个题,讨厌。
第四题:
171. Excel Sheet Column Number
Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
找到关键点,每一位字符串字符,代表26的几次方,因为这是26进制,相当于把26进制转换为十进制,把十进制转换为字符串,要难一点。
running time:3ms
public class Solution {
public int titleToNumber(String s) {
int number = 0;//做总和的变量要从0开始
int count = 1;//做乘数的变量要从1开始
for(int i=s.length()-1;i>=0;i--){
number = number + ((s.charAt(i)-'A'+1)*count);
count = count * 26;//或者count = Math.pow(26,i);
}
return number;
}
}
思路:取字符串中的每一位字符(从最右边开始取)其中A=1,B=2····,用26进制转换为十进制方法,每一位*26的i-1次方,再把乘积相加,即可。