LeetCode 171[Excel表列序号]
1.LeetCode1480[一维数组的动态和]2.LeetCode1342[将数字变成0的操作次数]3.LeetCode1672[最富有客户的资产总量]4.LeetCode412[Fizz Buzz]5.LeetCode9[回文数]6.LeetCode3264[K次乘运算后的最终数组I]7.LeetCode3270[求出数字答案]8.LeetCode LCR135[报数]9.LeetCode 1137[第N个泰波那契数]10.LeetCode 2535[数组元素和与数字和的绝对差值]11.LeetCode 2544[交替数字和]
12.LeetCode 171[Excel表列序号]
13.LeetCode 3014[输入单词需要的最少按键次数I]14.LeetCode 面试题16.07[最大数值]15.LeetCode 13[罗马数字转整数]16.LeetCode 836[矩形重叠]17.LeetCode 69[x的平方根]18.LeetCode 1103[分糖果II]19.LeetCode 2235[两整数相加]20.LeetCode 2769[找出最大的可达成数字]21.LeetCode 1290[二进制链表转整数]22.LeetCode 2455[可被三整除的偶数平均值]23.LeetCode 492[构造矩形]24.LeetCode 1812[判断国际象棋棋盘中一个格子的颜色]25.LeetCode 1837[K进制表示下的各位数字总和]26.LeetCode 367[有效的完全平方数]27.LeetCode LCP17[速算机器人]28.LeetCode 2413[最小偶倍数]29.LeetCode 66[加一]30.LeetCode 509[斐波那契数]31.LeetCode LCR126[斐波那契数]32.LeetCode LCR072[x的平方根]33.LeetCode 263[丑数]34.LeetCode 762[二进制表示中质数个计算置位]题目
链接
详情
实例
提示
题解
思路
这其实是一道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;
}
};
本文来自博客园,作者:EricsT,转载请注明原文链接:https://www.cnblogs.com/EricsT/p/18536505
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇