[LeetCode] 168. Excel Sheet Column Title + 171. Excel Sheet Column Number
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 제목 요약
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.