首页 > 其他分享 >LeetCode 171[Excel表列序号]

LeetCode 171[Excel表列序号]

时间:2024-11-09 11:41:20浏览次数:1  
标签:case 10 26 权重 Excel llNum 表列 break LeetCode

题目

链接

LeetCode 171[Excel表列序号]

详情

实例

提示

题解

思路

这其实是一道26进制的算术题

其中

A的权重为1,B的权重为2,C的权重为3,D的权重为4,E的权重为5,F的权重为6,G的权重为7

H的权重为8,I的权重为9,J的权重为10,K的权重为11,L的权重为12,M的权重为13

N的权重为14,O的权重为15,P的权重为16,Q的权重为17,R的权重为18,S的权重为19

T的权重为20,U的权重为21,V的权重为22,W的权重为23,X的权重为24,Y的权重为25,Z的权重为26

可以用 switch 列举,也可以用公式计算:所求字符 - 'A' + 1,例如需要求Z的权重,则 'Z' - 'A' + 1 = 90 - 65 + 1 = 26

 

在10进制里面:

  123的位数是3,123 = 10 ^ (3 - 1) * 1 + 10 ^ (3 - 2) * 2 + 10 ^ (3 - 3) * 3

同理在26进制里面:

  ABC的位数是3,ABC = 26 ^ (3 - 1) * A + 26 ^ (3 - 2) * B + 26 ^ (3 - 3) * C

 

其中幂运算用数学函数 pow 函数计算

其中位数用字符串的 size 方法求得

代码

class Solution {
public:
    int titleToNumber(string columnTitle) {
       long long llRet = 0;

       size_t iSize = columnTitle.size();

       for (int i = 0; i < iSize; i++)
       {
            long long llNum = pow(26, iSize - i - 1);
            switch (columnTitle.at(i))
            {
                case 'A':llNum *= 1;break;
                case 'B':llNum *= 2;break;
                case 'C':llNum *= 3;break;
                case 'D':llNum *= 4;break;
                case 'E':llNum *= 5;break;
                case 'F':llNum *= 6;break;
                case 'G':llNum *= 7;break;
                case 'H':llNum *= 8;break;
                case 'I':llNum *= 9;break;
                case 'J':llNum *= 10;break;
                case 'K':llNum *= 11;break;
                case 'L':llNum *= 12;break;
                case 'M':llNum *= 13;break;
                case 'N':llNum *= 14;break;
                case 'O':llNum *= 15;break;
                case 'P':llNum *= 16;break;
                case 'Q':llNum *= 17;break;
                case 'R':llNum *= 18;break;
                case 'S':llNum *= 19;break;
                case 'T':llNum *= 20;break;
                case 'U':llNum *= 21;break;
                case 'V':llNum *= 22;break;
                case 'W':llNum *= 23;break;
                case 'X':llNum *= 24;break;
                case 'Y':llNum *= 25;break;
                case 'Z':llNum *= 26;break;
            }

            llRet += llNum;
       }

       return llRet;
    }
};

标签:case,10,26,权重,Excel,llNum,表列,break,LeetCode
From: https://www.cnblogs.com/EricsT/p/18536505

相关文章

  • EXCEL快速提取中英文、数字的4个方法,总有一个适合你!
    应用场景:工作中,常常需要从单元格数据中截取一部分进行统计、计算,或者从不同系统导出的数据中提取中文、数字和英文等,如何快速提取需要的数据呢?介绍4种常用方法。第一种方法,用文本截取函数三剑客(LEFT/RIGH/MID函数)和文本长度度量函数(LEN/LENB)来提取1、LEFT函数和RIGHT函数参数:LEFT......
  • LeetCode100之旋转图像(48)--Java
    1.问题描述  给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转90度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。        示例1输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]......
  • LeetCode100之买卖股票的最佳时机含冷冻期(309)--Java
    1.问题描述   给定一个整数数组prices,其中第  prices[i] 表示第 i 天的股票价格。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票(即冷冻期为1天)。        注意......
  • Leetcode 每日一题 135.分发糖果
    问题描述给定一个整数数组ratings,表示一排孩子的评分。我们需要按照以下规则给孩子们分发糖果:每个孩子至少得到1个糖果。相邻两个孩子中,评分更高的孩子会得到更多的糖果。我们的目标是计算出按照这些规则分发糖果所需的最少糖果数。输入输出格式输入:一个整数数组 rating......
  • Leetcode 474 dp数组讲解和滚动数组优化
    474.一和零​ ​dp[i][w1][w2]:DP数组的集合:考虑前i个物品包括第i个,满足背包重量不超过[w1][w2]的所有集合把输入数组中的每个string当作是一个物品,其重量分别为string中0和1的个数属性:价值每个物品的价值是1因为我们求最大子集的个数,一个字符串对子集个数贡献的......
  • Intern大模型训练营(二):leetcode习题+Vscode连接InternStudio debug
    1.Leetcode383:思路:使用两个数组存储两个字符串中出现的字符,然后一一比较数量。classSolution:defcanConstruct(self,ransomNote:str,magazine:str)->bool:cnta=[0]*26cntb=[0]*26forcinransomNote:cnta[or......
  • Leetcode 3235. 判断矩形的两个角落是否可达
    1classSolution{2public:3boolcanReachCorner(intxCorner,intyCorner,vector<vector<int>>&circles){4vector<bool>visited(circles.size(),false);56function<bool(int)>dfs=[&](inti)......
  • EXCEL表格内容差异比较
    此代码是将两个相同结构的EXCEL表格内容差异的比较,并作标记内容差异:1)填充色比较差异2)单元格值比较,不包括格式信息,如字体、颜色、大小等3)字体的名称、大小、是否加粗、是否斜体、是否有下划线以及颜色是否相同fromopenpyxl.stylesimportPatternF......
  • 代码随想录算法训练营第二十一天| leetcode669. 修剪二叉搜索树、leetcode108.将有序
    1leetcode669.修剪二叉搜索树题目链接:669.修剪二叉搜索树-力扣(LeetCode)文章链接:代码随想录视频链接:你修剪的方式不对,我来给你纠正一下!|LeetCode:669.修剪二叉搜索树_哔哩哔哩_bilibili思路:目前想的是分三种情况,第一种情况就是这个数删除左边全部,第二种删除右边的全部,第......
  • 使用金鸣识别大师将驾驶证信息转为结构化Excel的教程
    在当今信息化社会,将纸质文档快速转化为数字化、结构化的数据变得尤为重要。金鸣表格文字识别大师作为一款文字识别软件,能够轻松地将驾驶证等证件信息转化为结构化的Excel数据。以下将详细介绍如何使用金鸣表格文字识别大师将驾驶证信息转化为结构化Excel。一、下载安装金鸣表......