【Leetcode】Excel Sheet Column Title

题目链接:点击打开链接

题目:

Given a positive integer, return its corresponding column title as appear in an Excel sheet.

For example:

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

思路:

类似十进制转化为二十六进制,要注意如果n可以被26除尽,最后一位没有0表示最小只有A,这里用Z表示。

所以要考虑两种情况,如果可以被26除尽,最后一位固定为Z,(n-26)/26考虑前面位数的转化;如果不能被除尽,直接考虑所有位数的转化。

算法:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public String convert(int n) {//将数字转化为字母  
  2.     String result = "";  
  3.     while (n % 26 != 0) {  
  4.         result = (char) (n % 26 + 64) + result;  
  5.         n = n / 26;  
  6.     }  
  7.     if (n / 26 != 0) {  
  8.         result = (char) (n + 64) + result;  
  9.     }  
  10.     return result;  
  11. }  
  12.   
  13. public String convertToTitle(int n) {  
  14.     String result = "";  
  15.     if (n <= 26) {  
  16.         return String.valueOf((char) (n + 64));  
  17.     }  
  18.     if (n % 26 == 0) {//如果可以被26除的尽的时候最后一位为Z,(n-26)/26因为最后一位固定为Z,考虑前面的位的转化  
  19.         result = convert((n-26)/26) + 'Z';  
  20.         return result;  
  21.     } else {  
  22.         result = convert(n);  
  23.     }  
  24.     return result;  
  25. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值