0
点赞
收藏
分享

微信扫一扫

Excel表列名称

编程练习生J 2021-09-21 阅读 104
今日算法

题目描述:

说明:
示例 1:
示例 2:
示例 3:
示例 4:
思路:
代码实现:
class Solution {
    public String convertToTitle(int cn) {
        StringBuilder sb = new StringBuilder();
        while (cn > 0) {
           int mod = cn % 26;
           char cur;
           if (mod == 0) {
               cur = 'Z';
               cn = --cn / 26;
           } else {
               cur = (char)('A' + (mod - 1));
               cn = cn / 26;
           }
            sb.append(cur);
        }
        sb.reverse();
        return sb.toString();
    }
}
class Solution {
    String[] arr = 
    new String[]{"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"};
    int num = 0;
    public String convertToTitle(int columnNumber) {
        num = columnNumber;
        if (columnNumber < 27) {
            return arr[columnNumber];
        }
        return bfs();
    }
    public String bfs() {
        int index = 26;
        Queue<String> queue = new LinkedList();
        for (String str : arr) {
            queue.offer(str);   
        }
        while(!queue.isEmpty()) {
            String poll = queue.poll(); 
            for (String str : arr) {
                String copy = poll + str;
                queue.offer(copy);
                index++;
                if (index == num) return copy;
            }
        }
        return "";
    }
}
举报

相关推荐

0 条评论