[LeetCode] 168. Excel Sheet Column Title + 171. Excel Sheet Column Number
168. Excel Sheet Column Title
Given an integer columnNumber
, return its corresponding column title as it appears in an Excel sheet.
For example:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
Example 1:
Input: columnNumber = 1 Output: "A"
Example 2:
Input: columnNumber = 28 Output: "AB"
Example 3:
Input: columnNumber = 701 Output: "ZY"
Constraints:
1 <= columnNumber <= 231 - 1
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/excel-sheet-column-title
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
因为字母是26进制的,所以当我们看到一个数字的时候,我们会很自然地想到去 mod26 然后转换成字母。但是因为 26 个字母对应的数字是 1-26 而不是 0-25 所以需要记得先减去 1 才能做转换的动作。
时间O(n)
空间O(1)
Java实现
1 class Solution { 2 public String convertToTitle(int n) { 3 StringBuilder sb = new StringBuilder(); 4 while (n > 0) { 5 n--; 6 sb.append((char)('A' + n % 26)); 7 n /= 26; 8 } 9 return sb.reverse().toString(); 10 } 11 }
171. Excel Sheet Column Number
Given a string columnTitle
that represents the 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 ...
Example 1:
Input: columnTitle = "A" Output: 1
Example 2:
Input: columnTitle = "AB" Output: 28
Example 3:
Input: columnTitle = "ZY" Output: 701
Constraints:
1 <= columnTitle.length <= 7
columnTitle
consists only of uppercase English letters.columnTitle
is in the range["A", "FXSHRXW"]
.
Excel表列序号。
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/excel-sheet-column-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题意是给了一个excel表列的序号,请转换成阿拉伯数字。
因为字母是每26个循环一次,所以相当于26进制,每26个数则向前进一位。同时注意因为A代表1,所以每个字母跟A做减法的时候还需额外 + 1。
时间O(n)
空间O(1)
Java实现
1 class Solution { 2 public int titleToNumber(String s) { 3 int res = 0; 4 for (int i = 0; i < s.length(); i++) { 5 res = res * 26 + (s.charAt(i) - 'A' + 1); 6 } 7 return res; 8 } 9 }