[LeetCode] 171 엑셀 테이블 열 번호

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
    
    
게시 된 237 개 원래 기사 · 원의 찬양 3 ·은 10000 +를 볼

추천

출처blog.csdn.net/qq_43584847/article/details/104380492