本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42290079

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 

思路:

(1)题意为给出Excel中对应列的字符求出该字符对应的整数。

(2)这道简单题考查的是“二十六进制”的问题(非真正二十六进制)。不难发现,每当超过26时,和十进制类似会发生变化,这里不对其解释。

(3)考虑到简单快捷,直接将26个字符对应的整数值存入一个Map中。需要说明的是算法中用到了Math类的power()方法,该方法是幂次方函数。

例如对于字符“ABC”来说,求解过程为:

count = 0 + 1 * Math.power(26, 2) = 676;

count = 676 + 2 * Math.power(26, 1) = 728;

count = 728 + 3 * Math.power(26, 0) = 731;

(4)希望本文对你有所帮助。

算法代码实现如下:

public static int titleToNumber(String s) {
	Map<String, Integer> all = new HashMap<String, Integer>();
	all.put("A", 1);
	all.put("B", 2);
	all.put("C", 3);
	all.put("D", 4);
	all.put("E", 5);
	all.put("F", 6);
	all.put("G", 7);
	all.put("H", 8);
	all.put("I", 9);
	all.put("J", 10);
	all.put("K", 11);
	all.put("L", 12);
	all.put("M", 13);
	all.put("N", 14);
	all.put("O", 15);
	all.put("P", 16);
	all.put("Q", 17);
	all.put("R", 18);
	all.put("S", 19);
	all.put("T", 20);
	all.put("U", 21);
	all.put("V", 22);
	all.put("W", 23);
	all.put("X", 24);
	all.put("Y", 25);
	all.put("Z", 26);

	if (s == null)
		return -1;
	int len = s.length();
	int sum = 0;
	int power = len - 1;
	for (int i = 0; i < len; i++) {
		int curr = all.get(String.valueOf(s.charAt(i)));
		sum += curr * Math.pow(all.size(), power);
		power--;
	}
	return sum;
}

Leetcode_171_Excel Sheet Column Number的更多相关文章

  1. 【leetcode】Excel Sheet Column Title & Excel Sheet Column Number

    题目描述: Excel Sheet Column Title Given a positive integer, return its corresponding column title as ap ...

  2. Excel Sheet Column Title & Excel Sheet Column Number

    Excel Sheet Column Title Given a positive integer, return its corresponding column title as appear i ...

  3. 【leetcode】Excel Sheet Column Number

    Excel Sheet Column Number Related to question Excel Sheet Column Title Given a column title as appea ...

  4. 【LeetCode】168 & 171- Excel Sheet Column Title & Excel Sheet Column Number

    168 - Excel Sheet Column Title Given a positive integer, return its corresponding column title as ap ...

  5. 171. Excel Sheet Column Number(C++)

    171. Excel Sheet Column Number Related to question Excel Sheet Column Title Given a column title as ...

  6. LeetCode Javascript实现 100. Same Tree 171. Excel Sheet Column Number

    100. Same Tree /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; ...

  7. 2016.5.18——Excel Sheet Column Number

    Excel Sheet Column Number 本题收获: 1.对于字符串中字母转为ASIIC码:string s ;res = s[i]-'A'; 这个res就是数字s[i]-'A'是对ASII ...

  8. leetcode 168. Excel Sheet Column Title 171 Excel Sheet Column Number

    题目 //像10进制一样进行 转换   只是要从0开始记录 class Solution { public: string convertToTitle(int n) { char a; string ...

  9. Excel Sheet Column Title&&Excel Sheet Column Number

    Excel Sheet Column Title Given a positive integer, return its corresponding column title as appear i ...

随机推荐

  1. How To determine DDIC Check Table, Domain and Get Table Field Text Data For Value?

     How To determineDDIC Check Table, Domain and Get Table Field Text Data For Value? 1.Get Table Fie ...

  2. Touch 方法&属性 映射工具

    Touch 方法&属性 映射工具(0.5 版本) 标签 : github 线上后门与接口调试: 原先需要测试一个接口(如Dubbo.DAO), 或为线上留后门, 需要写大量的Web层(Api. ...

  3. Bootstrap3 排版-列表

    无序列表 排列顺序无关紧要的一列元素. <ul> <li>...</li> </ul> 有序列表 顺序至关重要的一组元素. <ol> < ...

  4. Spring Boot 中应用Spring data mongdb

    摘要 本文主要简单介绍下如何在Spring Boot 项目中使用Spring data mongdb.没有深入探究,仅供入门参考. 文末有代码链接 准备 安装mongodb 需要连接mongodb,所 ...

  5. 浅谈机器人控制与仿真设计----RDS和ROS

    机器人控制.仿真或实验,主要由三个部分组成,机器人.环境和算法. 当然各部分又包含很多子部分和功能,这里主要以仿真为主,为了使得仿真结果能够直接应用到实际机器人上,这里分别以RDS和ROS对比介绍.h ...

  6. 【安卓开发】Android系统中Parcelable和Serializable的区别

    http://greenrobot.me/devpost/android-parcelable-serializable/ 进行Android开发的时候,我们都知道不能将对象的引用传给Activiti ...

  7. 【安卓开发】为什么不能往Android的Application对象里存储数据

    在一个App里面总有一些数据需要在多个地方用到.这些数据可能是一个 session token,一次费时计算的结果等.通常为了避免activity之间传递对象的开销 ,这些数据一般都会保存到持久化存储 ...

  8. JAVA面向对象-----面向对象(基础预备知识汇总)

    终于整理好了面向对象基础预备知识,但是有点多,所以你们懂的,贴图,较长的代码我还是会排版出来的,我不想把时间浪费在排版上在word里排版一次已经很浪费时间了,所以请谅解. public class C ...

  9. Android Studio安装Genymotion插件

    Android Studio安装Genymotion插件 Eclipse就不介绍了,谷歌都已经放弃Eclipse了,你还在坚持什么. 安装Genymotion 官网:https://www.genym ...

  10. ORACLE数据库学习之SQL性能优化详解

                                                                                    Oracle  sql 性能优化调整 ...