返回介绍

solution / 0100-0199 / 0168.Excel Sheet Column Title / README

发布于 2024-06-17 01:04:03 字数 3393 浏览 0 评论 0 收藏 0

168. Excel 表列名称

English Version

题目描述

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

例如:

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

 

示例 1:

输入:columnNumber = 1
输出:"A"

示例 2:

输入:columnNumber = 28
输出:"AB"

示例 3:

输入:columnNumber = 701
输出:"ZY"

示例 4:

输入:columnNumber = 2147483647
输出:"FXSHRXW"

 

提示:

  • 1 <= columnNumber <= 231 - 1

解法

方法一

class Solution:
  def convertToTitle(self, columnNumber: int) -> str:
    res = []
    while columnNumber:
      columnNumber -= 1
      res.append(chr(ord('A') + columnNumber % 26))
      columnNumber //= 26
    return ''.join(res[::-1])
class Solution {
  public String convertToTitle(int columnNumber) {
    StringBuilder res = new StringBuilder();
    while (columnNumber != 0) {
      --columnNumber;
      res.append((char) ('A' + columnNumber % 26));
      columnNumber /= 26;
    }
    return res.reverse().toString();
  }
}
func convertToTitle(columnNumber int) string {
  res := []rune{}
  for columnNumber != 0 {
    columnNumber -= 1
    res = append([]rune{rune(columnNumber%26 + int('A'))}, res...)
    columnNumber /= 26
  }
  return string(res)
}
function convertToTitle(columnNumber: number): string {
  let res: string[] = [];
  while (columnNumber > 0) {
    --columnNumber;
    let num: number = columnNumber % 26;
    res.unshift(String.fromCharCode(num + 65));
    columnNumber = Math.floor(columnNumber / 26);
  }
  return res.join('');
}
impl Solution {
  #[allow(dead_code)]
  pub fn convert_to_title(column_number: i32) -> String {
    let mut ret = String::from("");
    let mut column_number = column_number;

    while column_number > 0 {
      if column_number <= 26 {
        ret.push((('A' as u8) + (column_number as u8) - 1) as char);
        break;
      } else {
        let mut left = column_number % 26;
        left = if left == 0 { 26 } else { left };
        ret.push((('A' as u8) + (left as u8) - 1) as char);
        column_number = (column_number - 1) / 26;
      }
    }

    ret.chars().rev().collect()
  }
}
public class Solution {
  public string ConvertToTitle(int columnNumber) {
    StringBuilder res = new StringBuilder();
    while (columnNumber != 0) {
      --columnNumber;
      res.Append((char) ('A' + columnNumber % 26));
      columnNumber /= 26;
    }
    return new string(res.ToString().Reverse().ToArray());
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文