Excel Sheet Column

来源:互联网 发布:身份证给别人开淘宝店 编辑:程序博客网 时间:2024/05/16 14:59

Given a column title as appear in an Excel sheet, return its corresponding column number.

For example:

A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 

思路:26进制,将字符串从左往右遍历,每次得到的字母转为数字,然后加上次的的数并乘以对应的基数。

    public int titleToNumber(String s) {        int sum = 0;        for(int i=0;i<s.length();i++){            sum = s.charAt(i)-'A'+1 + sum*26;        }        return sum;    }

还有一个关联的题目:
Given a positive integer, return its corresponding column title as appear in an Excel sheet.

For example:

1 -> A2 -> B3 -> C...26 -> Z27 -> AA28 -> AB 

思路:就是把每次取余并将数字转为字符后进行字符串拼接
注意:因为是对整数取余,每次取余的结果是从个,十,百位这样来的,所以每次取余所得到的结果应该放在上一次结果的前面。

    public String convertToTitle(int n) {       String s = "";        if (n == 0)            return s;        while (n > 0) {            s = (char) ('A' + --n % 26)+s;            n /= 26;        }        return s;    }    下面是递归解法,更简洁:    public String convertToTitle(int n) {        return n == 0 ? "" : convertToTitle(--n / 26) + (char)('A' + (n % 26));    }
原创粉丝点击