Leetcode刷题笔记python---键盘行

本文介绍了一种算法,用于从给定的单词列表中筛选出仅使用键盘同一行字母组成的单词。通过构建判断函数和遍历操作,实现了高效筛选。

键盘行

题目


给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。

Alt

示例1:

输入: [“Hello”, “Alaska”, “Dad”, “Peace”]
输出: [“Alaska”, “Dad”]
注意:

1.你可以重复使用键盘上同一字符。
2.你可以假设输入的字符串将只包含字母。

解答


代码:
将题目分解为两步,

  1. 判断一个字符串在不在另一个字符串内
  2. 再遍历

代码:

class Solution:
    def findWords(self, words):
        """
        :type words: List[str]
        :rtype: List[str]
        """
        #构建一个函数判断一个字符串x是不是全在y中
        def allin(x,y):
            n=0
            for i in x.lower():
                if i in y.lower():
                    n+=1
            if n==len(x):
                return True
            else:
                return False
        keyboard=['qwertyuiop','asdfghjkl','zxcvbnm']
        num=[]
        for i in words:
            for j in keyboard:
                if allin(i,j):
                    num.append(words.index(i))
        word=[]
        for i in num:
            word.append(words[i])
        return word
其中2009年、2011年、2012年、2013年、2015年、2017年、2019年的数据中有里程和票价信息,2010年和2020年的数据中有票价信息。一、数据覆盖范围与特点1. 时间跨度:覆盖2009-2024年,共16年数据,其中2009年、2011-2013年、2015年、2017年、2019年包含里程和票价信息,2010年、2020年包含票价信息,最新数据更新至2024年2月。2. 车次类型:包含C(城际)、D(动车)、G(高铁)、K(快速)、T(特快)、Z(直达)字母打头的车次,以及普通绿皮车次,完整反映我国铁路客运体系。3. 数据规模:总数104,593条,包含车站名称、发车/到达时间、运时长、票价等核心字段,符合铁路交通大数据特征。二、数据采集技术分析1. 爬虫实现路径:采用多语言混合开发,通过模拟登录12306等平台,规避验证码等反爬机制。 结合正则表达式提取车次、票价、里程等结构化数据。 - 数据存储采用Excel格式,便于后续清洗与可视化处理。2. 技术难点: 12306动态加载数据需解析内容, 跨年数据更新需设计增量爬取策略,避免重复抓取。三、数据应用1. 交通规划:可分析各线路客流量分布,辅助铁路部门优化班次调度。2. 学术研究:为高铁经济效应、区域发展关联等研究提供基础数据支持。3. 公众服务:支持离线查询全国任意两站间的时刻与票价,提升出效率。车次 站序 站名 到达时间 开始时间 停留时间 运时间 天数 里程 一等座价格 商务座价格 二等座价格 硬座价格 硬卧价格 软卧价格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值