[LeetCode OJ]- ExcelSheetColumnTitle&Number

题目要求对excel中的列标题栏的字符串转为数字 或者 数字转为字符串,如下。

A -> 1

B -> 2

C -> 3

...

Z -> 26

AA -> 27

AB -> 28

思路:可以看出,这可以看做一道进制转换的题目。字符串第一位范围是1~26,第二位范围是26+1~26*(26+1)……因此可以将26作为一个进制来看。

public static String convertToTitle(int n) {

if(n<0) return null;

StringBuffer str = new StringBuffer();

char []Table = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};

while(n > 0){

n--;

str.append(Table[n%26]);

n = n/26;

}

return str.reverse().toString();

}


public static int titleToNumber(String s) {

int num = 0;

char temp;

for(int i = 0; i < s.length(); i++){

temp = s.charAt(i);

num = num*26 + (temp - 'A' + 1);

}

return num;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容