Excel Sheet Column Number
来源:互联网 发布:流星网络电视怎么注册 编辑:程序博客网 时间:2024/06/15 15:37
Excel Sheet Column Number
作者:money
标签:leetcode,C++
问题:
Given a column title as appear in an Excel sheet, return its corresponding column number.
For example:
A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28
问题分析:
我的解法是很传统的n进制转10进制的做法。效率非常低。方法是从低位向高位不断加和,用到math库中的求n次方的方式求解。
s.size长度为n
实现代码:
#include <iostream>#include <string>#include <math.h>// submit these code to leetcode// beginusing namespace std;class Solution {public: int titleToNumber(string s) { int asc,result=0; for(int i=s.size()-1;i>=0;i--) { asc=s[i]-64; result=result+asc*pow(26,s.size()-i-1); } return result; }};// end// submit these code to leetcodeint main(){ Solution s; //test case string str="AC"; int a; a=s.titleToNumber(str); std::cout<<a<<" "; return 0;}
其他解法:
从高位向低位不断加和求进制转换:
int result = 0;for (int i = 0; i < s.size(); result = result * 26 + (s.at(i) - 'A' + 1), i++);return result;
关于进制转换:
n进制转换为10进制:针对本题的优化方式,目前通常是2,8,10,16进制之间的转换,但是根据上面的优化解法,解法的迭代思路如下:
数字num为n进制数,其中num[i]为第i位所代表的10进制数字。如本题中的A代表数字1,Z代表数字26。
其中num的size为m
根据上述公式,可以得到递归的方式。
0 0
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- Excel Sheet Column Number
- poj1269直线交点
- 基于随机森林的特征选择算法
- 搜索引擎研究---网络蜘蛛程序算法相关资料 Part V (共5部分)
- Poj 1947 Rebuilding Roads
- JS 根据今天的日期获取本周星期一与星期天的日期
- Excel Sheet Column Number
- 工作环境配置
- 面试总结
- 查看linux 下已经安装的软件包信息
- IP地址和数字之间转化的算法
- AUTOWIRE_NO的作用
- Spring与Hibernate整合中的数据源配置
- 如果我能够说话的话,我会对你说
- MediaCodec与ACodec通知分析