408.有效单词缩写 Python指针思路分析与细节解析!

简介: 408.有效单词缩写 Python指针思路分析与细节解析!

408.有效单词缩写


https://leetcode-cn.com/problems/valid-word-abbreviation/solution/408you-xiao-dan-ci-suo-xie-pythonzhi-zhe-2tc7/

难度:简单


题目

给一个 非空 字符串 s 和一个单词缩写 abbr ,判断这个缩写是否可以是给定单词的缩写。

字符串 "word" 的所有有效缩写为:

["word", "1ord", "w1rd", "wo1d", "wor1", "2rd", "w2d", "wo2", "1o1d", "1or1", "w1r1", "1o2", "2r1", "3d", "w3", "4"]

注意单词 "word" 的所有有效缩写仅包含以上这些。任何其他的字符串都不是 "word" 的有效缩写。

注意:

假设字符串 s 仅包含小写字母且 abbr 只包含小写字母和数字。


示例

示例 1:
给定 s = "internationalization", abbr = "i12iz4n":
函数返回 true.
示例 2:
给定 s = "apple", abbr = "a2e":
函数返回 false.


分析

word中举了那么多例子,其实总结起来就是,数字可以代表任何一个字母。

有多少数字,我们就可以跳过多少个字母不做检测。

然后这道题就很简单了?不,只能说这道题细节太多了...

  1. abbr中的数字是否会超过word总长度?
  2. abbr中的数字出现在最后,导致右边界匹配不全?
  3. 数字以0开头,需要判断为不合规的匹配类型?
  4. 数字可能不仅仅想示例中是1位,多位又该如何计算?

思路:

  1. 对于数字,尤其多位数字我们需要维护一个临时的num用于记录。
  2. 当出现多位数字时,使用num = num * 10 + int(i)的方式追加。
  3. 每次在指针追加num后,都需要判断指针是否以超过word总长
  4. 对于数字出现在最后的问题,需要在末尾添加point+num的操作后再进行判断
    具体解题如下:


解题

class Solution:
    def validWordAbbreviation(self, word: str, abbr: str) -> bool:
        point, num, lg = 0, 0, len(word)
        for i in abbr:
            if i.isdigit():
                if num == 0 and i == '0':
                    return False
                num = num * 10 + int(i)
                continue
            if num:
                point += num
                num = 0
            if point >= lg or word[point] != i:
                return False
            point += 1
        return True if point + num == lg else False




相关文章
|
5月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
6月前
|
缓存 监控 算法
item_get - Lazada 商品详情详情接口深度分析及 Python 实现
Lazada商品详情接口item_get可获取商品全维度数据,包括价格、库存、SKU、促销及卖家信息,支持东南亚六国站点,适用于竞品监控、定价策略与市场分析,助力跨境卖家精准决策。
|
6月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
5月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
5月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
6月前
|
缓存 监控 算法
苏宁item_get - 获得商品详情接口深度# 深度分析及 Python 实现
苏宁易购item_get接口可实时获取商品价格、库存、促销等详情,支持电商数据分析与竞品监控。需认证接入,遵守调用限制,适用于价格监控、销售分析等场景,助力精准营销决策。(238字)
|
6月前
|
监控 算法 数据安全/隐私保护
唯品会 item_get - 获得 VIP 商品详情接口深度分析及 Python 实现
唯品会item_get接口通过商品ID获取商品详情,支持价格、库存、促销等数据抓取,适用于电商分析、竞品监控与价格追踪,结合Python实现可高效完成数据获取、分析与可视化,助力精准营销决策。
|
6月前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
343 2

热门文章

最新文章

推荐镜像

更多