171. Excel 表列序号

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。

例如:

A -> 1
B -> 2
C -> 3

Z -> 26
AA -> 27
AB -> 28

示例 1:

输入: columnTitle = “A”
输出: 1
示例 2:

输入: columnTitle = “AB”
输出: 28
示例 3:

输入: columnTitle = “ZY”
输出: 701

提示:

1 <= columnTitle.length <= 7
columnTitle 仅由大写英文组成
columnTitle 在范围 [“A”, “FXSHRXW”] 内
通过次数157,113提交次数219,885

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/excel-sheet-column-number

题解

class Solution {
    public int titleToNumber(String columnTitle) {
        //26进制
        int ans=0;
        for(int i=0;i<columnTitle.length();i++){
            int num=columnTitle.charAt(i)-'A'+1;//charAt(i)-'A'
            ans=ans*26+num;
        }
        return ans;
    }
}

其实就看做是26进制,从后往前,(s.charAt(i)-‘A’)26*(n-i-1),同样也是符合规律的

class Solution {
    public int titleToNumber(String columnTitle) {
        int ans=0;
        for(int i=columnTitle.length()-1;i>=0;i--){
            ans+=(columnTitle.charAt(i)-'A'+1)*Math.pow(26,columnTitle.length()-i-1);
        }
        return ans;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Python中的os模块和pandas模块来完成这个任务。 1. 使用os模块出文件夹中所有文件的名称。 2. 使用正则达式匹配出每个文件的时间序。 3. 将每个文件的时间序和文件名存储到一个字典中,以文件名为键,时间序为值。 4. 遍历字典,对于每个文件名,使用pandas模块读取该文件夹下所有同名的Excel格,并将它们按时间序排序。 5. 选择时间序最大的那个Excel格,即为该类文件中最新的数据。 下面是一个示例代码,您可以根据您的具体情况进行修改和优化: ```python import os import re import pandas as pd # 1. 出文件夹中所有文件的名称 files = os.listdir('/path/to/folder') # 2. 使用正则达式匹配出每个文件的时间序 pattern = re.compile(r'\d{8}') # 3. 将每个文件的时间序和文件名存储到一个字典中 file_dict = {} for file in files: match = pattern.search(file) if match: time_str = match.group() file_dict[file] = int(time_str) # 4. 遍历字典,对于每个文件名,读取该文件夹下所有同名的Excel格,并将它们按时间序排序 for file_name, time_num in file_dict.items(): file_path = '/path/to/folder/' + file_name sheets = pd.read_excel(file_path, sheet_name=None) sorted_sheets = sorted(sheets.items(), key=lambda x: int(re.search(pattern, x[0]).group())) # 5. 选择时间序最大的那个Excel格 latest_sheet_name, latest_sheet_data = sorted_sheets[-1] print(f'The latest sheet in {file_name} is {latest_sheet_name}') ``` 注意,上面的示例代码仅供参考,具体实现可能需要根据您的具体情况进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值