1 제목 설명
Excel 스프레드 시트를 반환 해당 열 번호의 열 이름을 감안할 때.
예를 들어,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
예 1 :
입력 : "A"
출력 1
실시 예 2 :
입력 : "AB"
출력 : 28
예 3 :
입력 : "ZY"
출력 : 701
출처 : 숙박 버튼 (LeetCode)
링크 : HTTPS : //leetcode-cn.com/problems/excel-sheet-column-number
모든 네트워크에서 공제 저작권. 상업 무단 전재 소스를 표시하시기 바랍니다 승인 된 공식, 비상업적 재판에 문의하시기 바랍니다.
이 문제 해결 방안
사고
태그 : 문자열 탐색, 이진 변환
초기화 ANS 1로 대표되는 = 0, 각 문자 A와 빼기를 통과의 결과, 그래서 뺄셈 각 더한에 대한 필요성, 문자 NUM =를 나타내는 계산 된 값 - A는 + 1
26 개 문자가 존재하기 때문에, 26 진수 동등 순방향 하나 (26)의 각각의 수를
각 정도로는 이송 ANS = ANS * 26 + NUM
케이스 ZY에서, (26)의 Z 값 25의 Y 값이 결과는 26 * 26 + 25 = 701이다
O (N) 시간 복잡도
저자 : guanpengchn의
링크 : HTTPS : //leetcode-cn.com/problems/excel-sheet-column-number/solution/hua-jie-suan-fa-171-excelbiao-lie-xu-hao-by-guanpe/
소스 : 전원 버튼 (LeetCode)
저자가 저작권. 상업 무단 전재 공인 저자에 문의하시기 바랍니다, 소스가 표시 비상업적 무단 전재하시기 바랍니다.
3 해상도 코드
- 자바 코드
class Solution {
public int titleToNumber(String s) {
int ans = 0;
for(int i = 0; i < s.length(); i++){
int num = s.charAt(i) - 'A' + 1;
//26进制
ans = ans*26 + num;
}
return ans;
}
}
- 파이썬 코드
class Solution:
def titleToNumber(self, s: str) -> int:
ans = 0
for x in s:
num = ord(x)-ord('A')+1
ans = ans * 26 + num
return ans