LeetCode之Excel Sheet Column Title

来源:互联网 发布:mysql 按月查询 编辑:程序博客网 时间:2024/06/06 17:59

题意:
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 

给出一个正整数,返回相应的列标题出现在一个Excel表。
仔细观察示例,会发现1-26对应于A-Z,即十进制数转二十六进制数

Java代码:

public class Solution {    public String convertToTitle(int n) {        if(n <= 0) return null;        String result = "";        while(n != 0) {            result = (char)('A' + (n - 1) % 26) + result;            n = (n - 1) / 26;        }        return result;    }}

C++代码:

class Solution {public:    string convertToTitle(int n) {        if(n <= 0) return NULL;        string result;        while(n) {            result = (char)((n - 1) % 26 + 'A') + result;            n = (n - 1) / 26;        }        return result;    }};

解题思路:10进制数转26进制数
注意:

result = (char)('A' + (n - 1) % 26) + result;

这行代码不能替换为

result += (char)('A' + (n - 1) % 26);//等同于result = result + (char)('A' + (n - 1) % 26);

如果替换,结果字符串顺序相反

0 0
原创粉丝点击