找符合条件的最小子串

实例

S = “ADOBECODEBANC”

T ="ABC"

S最小符合条件T的最小子串为“BANC”

Algorithm

这里首先要把t串字符放在哈希表中,碰到t中字符则减1,这里要注意hash中的个数可以为负数,因为比如abbbbbbca 找到abc很明显是最后一个子串,遍历到后面的b时,它可能有用。那么怎么判断要t中的字符全部都找到了呢?用一个变量cnt记录,如果hash表的个数大于0则+1。当cnt等于t的长度,代表t中字符都找到了,这时要做的事,就是找到最小的。用一个变量minLen记录最小,如果当前长度小于minLen,更新minLen和minl(子串起点)。接着我们要从此时的起点往右搜索,直到哈希表中有字符的个数重新大于0

代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值