168. Excel表列名称

📅 2026/7/28 14:45:47
168. Excel表列名称
给定一个正整数返回它在 Excel 表中相对应的列名称。例如1 - A 2 - B 3 - C ... 26 - Z 27 - AA 28 - AB ...示例 1:输入: 1输出: “A”示例 2:输入: 28输出: “AB”示例 3:输入: 701输出: “ZY”来源力扣LeetCode链接https://leetcode-cn.com/problems/excel-sheet-column-title著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。用一个String数组存储A-Z之间的字母String AZ “#ABCDEFGHIJKLMNOPQRSTUVWXYZ”;char[] CZ AZ.toCharArray();输入的n除以26取余后,1-25之间的数对应在CZ里的索引就是需要的字符,当n等于26,52或者在迭代的过程中有一步出现了26的整数倍,比如26,取余等于0.CZ[0]对应的是#,有个小技巧可以让结果取余后等于26:int mod (n - 1) % 26 1.当输入52时,第一次取余为26,之后进入第二次迭代的判断是nn/26,若n还大于零,说明还有位数,进入下一层迭代,但假如在判断之前n26的整数倍,也就是之前的余数为26的整数倍.如26,52,结果为1,2.前者还会进入下一层,但是这样是错误的,后者进入下层后取余为2也是错的 .解决方法是减一.class Solution {public String convertToTitle(int n) {String AZ “#ABCDEFGHIJKLMNOPQRSTUVWXYZ”;char[] CZ AZ.toCharArray();StringBuilder sb new StringBuilder();while(n0){int yushu(n-1)%261;sb.append(CZ[yushu]);nn/26;if(yushu26) n-1;} return sb.reverse().toString(); }}