【JAVA】【刷题子】168.Excel表列名称

259 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情

一、题目与题目分析

题目

  给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
  例如: 字母与数字对应关系

字母数字
A->1
B->2
C->3
.........
Z->26
AA->27
AB->28
.........

题目示例.png
  (题目来源:力扣:168.Excel表列名称

题目分析

  Excel表中对应的列名称,主要了解清楚对应关系即可。(注意:这里的ZA26*26+1,并不是2727是对应的列名是AA

二、整体逻辑与主要代码

题目分析已经比较清楚了,接下来我们进入代码设计。

整体逻辑

   在对应关系中,已知小于1的都不符合;
   再去遍历求余去转换对应的字母,同时添加到结果里;
   最后结果翻转得出最终答案。

主要代码

整体逻辑清晰了之后,同时也有较清楚的注释。直接来看代码吧! (如有不懂的或者更好的建议,欢迎评论区分享友友的看法哈~)

class Solution {
	public static String convertToTitle(int columnNumber) {
		StringBuilder sb = new StringBuilder();
		if (columnNumber < 1) {
			// 数字小于1,不符合,直接返回
			return sb.toString();
		}
		while (columnNumber > 0) {
			// 当前对应关系是 1 -> A; 2 -> B
			columnNumber--; // 转换对应关系为 0 -> A;1 -> B ...(方便求余计算)
			int addNum = columnNumber % 26; // 需要添加的ASCII码数值,匹配对应的字母
			char ch = (char) ('A' + addNum); // 也可写成 (char) 65+addNum;A对应的ASCII码是65
			sb.append(ch);
			// 计算出一个字母,除26;就继续算下一个
			columnNumber /= 26;
		}
		// 翻转
		return sb.reverse().toString();
	}
}

三、结果展示

结果展示.png

四、人生总结

凡是慢慢来,迎刃而解!

题目数据库

Gitee:传送门

文章小尾巴

文章写作、模板、文章小尾巴可参考:《写作“小心思”》
  感谢你看到最后,最后再说两点~
  ①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。
  ②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~
  我是南方者,一个热爱计算机更热爱祖国的南方人。

  (文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。)