Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28
分析:实际上就是求这一字符串的按权展开式。比如:ABCD=A*26^3+B*26^2+C*26^1+D*26^0,其中,ABCD分别为他们的ASCII码-64。
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
/********************************提交部分****************************/
class Solution
{
public:
int titleToNumber(string s)
{
int ans=0,tmp=1,TMP=1;
for(int i=s.size()-1; i>=0; i--)
{
TMP*=(s[i]-64);
ans+=TMP;
tmp*=26;
TMP=tmp;
}
return ans;
}
};
/********************************************************************/
int main()
{
string s;
cin>>s;
Solution S;
int ans=S.titleToNumber(s);
printf("%d\n",ans);
return 0;
}