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
由字符串翻译为对应的数字,很容易得到以下代码:
public int titleToNumber(String s) {
int len=s.length();
if(len==0) return 0;
int sum=0;
for(int i=len-1;i>=0;i--){
sum+=(s.charAt(i)-'A'+1)*Math.pow(26,len-1-i);
}
return sum;
}
168. Excel Sheet Column Title
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A
2 -> B
3 -> C
…
26 -> Z
27 -> AA
28 -> AB
由数字翻译成字母,由于是从1开始,而后面有类似10,20,30,(十进制)等,所以需要对能否整除26进行判断:
注:
- 常见ASCII码:48~57为0到9十个阿拉伯数字,65~90为26个大写英文字母,97~122号为26个小写英文字母
- int转ASCII码:(char)65 –>’A’
- ASCII码转int: ‘B’-‘A’+65–>66
public String convertToTitle(int n) {
int temp=0;
StringBuffer s=new StringBuffer();
while(n>0){
if(n%26==0) {/*注意这种情况*/
s.append('Z');
n=n/27;
}
else{
s.append((char)('A'+n%26-1));
n=n/26;
}
}
return s.reverse().toString();
}