天天看點

java leetcode之[數學問題 Easy]168. Excel表列名稱題目大意一、示意圖二、解題思路

題目的連結在這裡:https://leetcode-cn.com/problems/excel-sheet-column-title/

目錄

  • 題目大意
  • 一、示意圖
  • 二、解題思路
    • 進位

題目大意

給定一個正整數,傳回它在 Excel 表中相對應的列名稱。

例如,

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

一、示意圖

java leetcode之[數學問題 Easy]168. Excel表列名稱題目大意一、示意圖二、解題思路

二、解題思路

直接變成了 1-26對應"A"到”Z"
           

進位

代碼如下:

class Solution {
      public String convertToTitle(int columnNumber) {
        //直接變成了 1-26對應"A"到”Z"
        String result="";
        //直接設定一個數組
        char sum[]={'a','A','B','D','D'};
        while (columnNumber>=1){
            int temp=columnNumber%26;
            //這裡就有一個位置  假設是27的話 就是餘1 應該是對應1字元級裡面 A是對應的65
            //經過測試 可以的
            //還有一種是 如果取餘之後 是本身的話 就
            char temp_String;
            if(temp==0){
                //表示那個結果就是26了
                temp_String = 'Z';
                columnNumber--;
            }
            else {
                 temp_String = (char) ('A' - 1 + temp);
            }
            result+=temp_String;
            columnNumber/=26;
        }
        //這裡就使用StringBuffer進行反轉
        StringBuilder sb=new StringBuilder(result);
        return sb.reverse().toString();
    }
}
           
java leetcode之[數學問題 Easy]168. Excel表列名稱題目大意一、示意圖二、解題思路