领扣LintCode算法问题答案-1730. 电子表格符号转换

    科技2022-08-06  130

    领扣LintCode算法问题答案-1730. 电子表格符号转换

    目录

    1730. 电子表格符号转换描述样例 1:样例 2: 题解鸣谢

    1730. 电子表格符号转换

    描述

    你需要模拟电子表格,类似 Excel 的列命名规则,将整数的编号转换成字符串的形式。 给出一个数 index,令 1 = A, 2 = B,26 = Z,27 = AA … 最后 702 = ZZ,每行最多有 702 个编号。当 index > 702 时,需要换一行,并重新开始编号,并重新从 A 开始编号,如 703 = A,705 = C。每满 702 个数都要换行,重新开始编号。 最后转换的结果为 index 所在的行号加上他的编号。 如最终 1 = 1A, 2 = 1B, 3 = 1C, 26 = 1Z, 27 = 1AA, 702 = 1ZZ, 705 = 2C, 1404 = 2ZZ。 如 705 在第 2 行,编号为 C,所以它通过转换得到的字符串是 2C。

    1 <= index <= 10​18 ​​

    样例 1:

    输入: 3 输出: 1C

    样例 2:

    输入: 28 输出: 1AB

    题解

    public class Solution { /** * @param index: the index to be converted * @return: return the string after convert. */ public String convert(long index) { // write your code here StringBuilder sb = new StringBuilder(); long n = (index - 1) % 702; while (n > 0) { long mode = n % 26; sb.append((char)('A' + mode)); n /= 26; n--; } if (n == 0) { sb.append('A'); } StringBuilder ret = new StringBuilder(); ret.append((index - 1) / 702 + 1); return ret.append(sb.reverse()).toString(); } }

    原题链接点这里

    鸣谢

    非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。 欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

    Processed: 0.012, SQL: 9