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




相关文章
|
2天前
|
缓存 算法 数据安全/隐私保护
VVICitem_search - 根据关键词取关键词取商品列表接口深度分析及 Python 实现
VVIC item_search接口支持关键词搜索服装商品,提供价格、销量、供应商等数据,助力市场调研与采购决策。
|
2天前
|
供应链 监控 算法
VVICitem_get - 根据 ID 取商品详情接口深度分析及 Python 实现
VVIC(搜款网)是国内领先的服装批发电商平台,其item_get接口支持通过商品ID获取详尽的商品信息,涵盖价格、规格、库存、图片及店铺数据,助力商家高效开展市场分析、竞品监控与采购决策。
|
3天前
|
缓存 自然语言处理 算法
item_search - Lazada 按关键字搜索商品接口深度分析及 Python 实现
Lazada的item_search接口是关键词搜索商品的核心工具,支持多语言、多站点,可获取商品价格、销量、评分等数据,适用于市场调研与竞品分析。
|
3天前
|
缓存 监控 算法
item_get - Lazada 商品详情详情接口深度分析及 Python 实现
Lazada商品详情接口item_get可获取商品全维度数据,包括价格、库存、SKU、促销及卖家信息,支持东南亚六国站点,适用于竞品监控、定价策略与市场分析,助力跨境卖家精准决策。
|
5天前
|
自然语言处理 算法 数据安全/隐私保护
item_review - Lazada 商品评论列表接口深度分析及 Python 实现
Lazada商品评论接口(item_review)可获取东南亚多国用户评分、评论内容、购买属性等数据,助力卖家分析消费者偏好、优化产品与营销策略。
|
5天前
|
缓存 监控 算法
京东item_search_best 畅销榜接口深度分析及 Python 实现
京东item_search_best接口可实时获取京东各品类畅销商品排名、销量、价格等核心数据,支持多维度榜单分析与品牌竞品监控,助力商家精准选品、制定市场策略,全面把握消费趋势。
|
5天前
|
缓存 供应链 监控
1688item_search_factory - 按关键字搜索工厂数据接口深度分析及 Python 实现
item_search_factory接口专为B2B电商供应链优化设计,支持通过关键词精准检索工厂信息,涵盖资质、产能、地理位置等核心数据,助力企业高效开发货源、分析产业集群与评估供应商。
|
7天前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
8天前
|
缓存 供应链 监控
VVIC seller_search 排行榜搜索接口深度分析及 Python 实现
VVIC搜款网seller_search接口提供服装批发市场的商品及商家排行榜数据,涵盖热销榜、销量排名、类目趋势等,支持多维度筛选与数据分析,助力选品决策、竞品分析与市场预测,为服装供应链提供有力数据支撑。

推荐镜像

更多