博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode刷题171 Excel表列序号 Excel Sheet Column Number(简单) Python Java
阅读量:4128 次
发布时间:2019-05-25

本文共 1551 字,大约阅读时间需要 5 分钟。

题目大意:

给定一个Excel表格中的列名称,返回其相应的列序号。

例如,

A -> 1    B -> 2    C -> 3    ...    Z -> 26    AA -> 27    AB -> 28     ...

示例 1:

输入: "A"输出: 1

示例 2:

输入: "AB"输出: 28

示例 3:

输入: "ZY"输出: 701

从A-Z对应1-26,当列标题进一位变成AA时,列对应的数字变成27。这是一个26进制转换成10进制的问题,不过A对应的是1而不是0。ZY=26*26+25*1=701

class Solution(object):    def titleToNumber(self, s):        """        :type s: str        :rtype: int        """        result = 0         for letter in s:            result = result * 26 + ord(letter) - ord('A') + 1#转换之后把大写字母对应的数字转化为小写字母。            # ord()函数用来获得字符对应的ASCII数值        return result

知识点:

ord() 函数 是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

语法:

ord( c )

c – 字符。
返回值:对应的十进制整数。

实例:

>>>ord('a')97>>>ord('b')98>>>ord('c')99

 

以下是Java版本:

分析如下:

本题就是A-Z代表26进制的数,计算出26进制字符串对于的10进制数. 

这里用到一个数学函数Math.pow(a,b)=ab次幂,即Math.pow(26,len-1-i)代表26的(len-1-i)次幂

//类似于计算26进制数的10进制结果public class Solution {    public int titleToNumber(String s) {        //s中字符个数        int len=s.length();        //保存最终结果        int result=0;        //从个位数开始累加计算        for(int i=len-1;i>=0;i--){            //Math.pow(a,b)是计算a的b次幂,这里底数是26            result+=(s.charAt(i)-'A'+1)*Math.pow(26,len-1-i);        }        return result;    }}

本质就是将一个26进制的数,转换成10进制的数。

public class Solution {    public int titleToNumber(String s) {        int result = 0;        for (int i = 0; i < s.length(); i++) {            result = result * 26 + (s.charAt(i) - 'A' + 1);        }        return result;    }}

 

转载地址:http://cpuvi.baihongyu.com/

你可能感兴趣的文章
手机助手(四):复杂的ListView + 自定义控件
查看>>
手机助手(五):模块化开发 + nineOldAndroid.jar
查看>>
源码或学习网站
查看>>
手机助手(二):侧拉栏drawerLayout+Tab+Viewpager+ListView+Pulltorefresh+imageloder
查看>>
Android Studio BUG
查看>>
Android基础:Date & Time组件(上)
查看>>
Android基础:Date & Time组件(下)
查看>>
第三方开源库:日期时间选择器(TimePickerDialog)+ 省市区三级联动(CityPicker) + 一级滚动
查看>>
第三方开源库:OkHttp
查看>>
科研机构分析环境搭建
查看>>
二叉堆(优先队列)
查看>>
外存IO操作
查看>>
如何开发一个程序
查看>>
python初学
查看>>
实体消歧,实体识别,实体融合,知识融合概述
查看>>
Linux使用
查看>>
scala初学
查看>>
Majority Element
查看>>
LeetCode感想
查看>>
Contains Duplicate
查看>>