[LeetCode] 168. Excel Sheet Column Title + 171. Excel Sheet Column Number

4157 단어
168. 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 
    ...

Example 1:
Input: 1
Output: "A"

Example 2:
Input: 28
Output: "AB"

Example 3:
Input: 701
Output: "ZY"

알파벳은 26진법이기 때문에, 우리가 숫자를 볼 때, 우리는mod26에 가서 알파벳으로 바꾸는 것을 자연스럽게 생각할 것이다.그러나 26자모에 대응하는 숫자는 0-25가 아닌 1-26이기 때문에 1을 먼저 빼야 전환하는 동작을 기억해야 한다.
시간 O(n)
공간 O(1)
Java 구현
 1 class Solution {
 2     public String convertToTitle(int n) {
 3         StringBuilder sb = new StringBuilder();
 4         while (n > 0) {
 5             n--;
 6             sb.append((char)('A' + n % 26));
 7             n /= 26;
 8         }
 9         return sb.reverse().toString();
10     }
11 }

 
171. Excel Sheet Column Number
Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28 
    ...

Example 1:
Input: "A"
Output: 1

Example 2:
Input: "AB"
Output: 28

Example 3:
Input: "ZY"
Output: 701

Constraints:
  • 1 <= s.length <= 7
  • s  consists only of uppercase English letters.
  • s  is between "A"and "FXSHRXW".

  • Excel 테이블 열 번호제목은 excel 표열의 번호를 주었습니다. 아라비아 숫자로 바꾸십시오.
    알파벳은 26개당 한 번씩 순환하기 때문에 26진법에 해당하고 26개당 한 자리씩 전진한다.또한 A가 1을 대표하기 때문에 알파벳마다 A와 뺄셈을 할 때 추가 + 1이 필요합니다.
    시간 O(n)
    공간 O(1)
    Java 구현
    1 class Solution {
    2     public int titleToNumber(String s) {
    3         int res = 0;
    4         for (int i = 0; i < s.length(); i++) {
    5             res = res * 26 + (s.charAt(i) - 'A' + 1);
    6         }
    7         return res;
    8     }
    9 }

     
    Leet Code 제목 요약

    좋은 웹페이지 즐겨찾기