今天继续刷LeetCode,第171题,将Excel字母转换为数字。
分析:
这题目和上一个类似,通过字符间的进位为26,转化为数字,可以从前往后遍历字符串的每一位,也可以从后往前遍历每一位,设置一个中间变量进行累加,输出中间变量。
问题:
1、注意指数的表示,可以用pow(26,i)来表示;
附上代码:
class Solution {
public:
int titleToNumber(string s) {
int n=s.size();
int sum=0;
long e=1;
for(int i=n-1;i>=0;i--)
{
if(i==n-1)
sum=sum+(s[i]-'A'+1);
else
sum=sum+(s[i]-'A'+1)*e;
e=e*26;
}
return sum;
}
};