LeetCode(171) Excel Sheet Column Number
제목
Related to question Excel Sheet Column Title
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
...
AAA -> 703
AAB -> 704
Credits: Special thanks to @ts for adding this problem and creating all test cases.
분석
Execl을 사용한 적이 있는 사람들은 모두 알고 있다. 상술한 자모는 그 열의 이름이고 숫자는 몇 번째 열을 대표한다. 본 문제는 A~Z로 구성된 문자열 서열을 정하고 Execl표에 있는 열의 수를 구하는 것이다.위에서 제시한 예시에서 규칙을 알 수 있는데 그 중에서 A~Z는 숫자 1~26을 대표한다. 그러면 문자열은 어떻게 구하는가?예를 들어 (낮은 위치에서 높은 위치로 계산):
A=1∗260=1 A=2∗260=2 ... AA=1∗260+1∗261=27 AB=2∗260+1∗261=28 ... AAA=1∗260+1∗261+1∗262=703 AAB=2∗260+1∗261+1∗262=704
AC 코드
class Solution {
public:
int titleToNumber(string s) {
int len = strlen(s.c_str());
if (len == 0)
return 0;
int count = 0 , p = 0;
for (int i = len-1; i >= 0; i--)
{
count = count + Num(s[i]) * pow(26, p);
p++;
}
return count;
}
int Num(char c)
{
switch (c)
{
case 'A':
return 1; break;
case 'B':
return 2; break;
case 'C':
return 3; break;
case 'D':
return 4; break;
case 'E':
return 5; break;
case 'F':
return 6; break;
case 'G':
return 7; break;
case 'H':
return 8; break;
case 'I':
return 9; break;
case 'J':
return 10; break;
case 'K':
return 11; break;
case 'L':
return 12; break;
case 'M':
return 13; break;
case 'N':
return 14; break;
case 'O':
return 15; break;
case 'P':
return 16; break;
case 'Q':
return 17; break;
case 'R':
return 18; break;
case 'S':
return 19; break;
case 'T':
return 20; break;
case 'U':
return 21; break;
case 'V':
return 22; break;
case 'W':
return 23; break;
case 'X':
return 24; break;
case 'Y':
return 25; break;
case 'Z':
return 26; break;
default:
return 0; break;
}
}
};
GitHub 테스트 프로그램 소스
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.