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
这种题跟实现字符串二进制是一个道理,上三种不同的代码版本
public int titleToNumber(String s) {<span style="white-space:pre"> </span>
int result = 0;
for (int i = 0; i < s.length(); i++) {
result = result * 26 + s.charAt(i) - 'A' + 1;
}
return result;
}
public int titleToNumber(String s) { int result = 0; char[] chars = s.toCharArray(); for (int i = 0; i < chars.length; i++) { result += (chars[chars.length - i - 1] - 'A' + 1) * Math.pow(26, i); } return result; }
可以实现一个递归版本的
public int titleToNumber(String s) { if (s.length() < 1) { return 0; } char c = s.charAt(s.length() - 1); return titleToNumber(s.substring(0, s.length()-1)) * 26 + c - 'A' + 1; }