首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

LeetCode 171:Excel 表列序號 — 26 進制轉十進制

     編輯:關於C++

題目描述

給定 Excel 列標題字符串,返回對應的列號。
A→1, B→2, ..., Z→26, AA→27, AB→28, ..., ZZ→702, AAA→703。

解題思路

標準 26 進制轉十進制:從左到右遍歷,result = result * 26 + (c - 'A' + 1)。等價於 Σ (char_i) * 26^(len-1-i)。

參考代碼 (C++)

class Solution {
public:
    int titleToNumber(string s) {
        int res = 0;
        for (char c : s) {
            res = res * 26 + (c - 'A' + 1);
        }
        return res;
    }
};

複雜度分析

  • 時間:O(n) —— n 為字符串長度。
  • 空間:O(1)。

注意

若使用 pow(26, exp) 需注意浮點精度,建議用整數累乘避免誤差。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved