现在有一个长度为m的只包含小写字母‘a’-‘z’的字符串x,求字符串中不同时含有n,p,y三个字母的最长字串的长度是多少?。(对于字符串”abc”来说,”c”,”ab”都是原串的子串,但”ac”不是原串子串)-笔试面试资料

这是qklbishe.com第11823 篇笔试面试资料
提供答案分析,通过本文《现在有一个长度为m的只包含小写字母‘a’-‘z’的字符串x,求字符串中不同时含有n,p,y三个字母的最长字串的长度是多少?。(对于字符串”abc”来说,”c”,”ab”都是原串的子串,但”ac”不是原串子串)-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

现在有一个长度为m的只包含小写字母‘a’-‘z’的字符串x,求字符串中不同时含有n,p,y三个字母的最长字串的长度是多少?。(对于字符串”abc”来说,”c”,”ab”都是原串的子串,但”ac”不是原串子串)

现在有一个长度为m的只包含小写字母‘a’-‘z’的字符串x,求字符串中不同时含有n,p,y三个字母的最长字串的长度是多少?。(对于字符串”abc”来说,”c”,”ab”都是原串的子串,但”ac”不是原串子串) 零葬
双指针做法,不断检查[left, right]子串中是否同时包含npy三个字符:
(1) 不同时包含则右移右指针;
(2) 同时包含则右移左指针,直到不同时包含npy为止。
每次到(1)的情况,都需要更新此时的最长子串长度
class Solution:     def Maximumlength(self , x ):         # write code here         left, right = 0, 0         res = 0         counter = dict(n=0, p=0, y=0)         while right < len(x):             if x[right] in "npy":                 counter[x[right]] += 1             while counter['n'] and counter['p'] and counter['y']:                 if x[left] in "npy" and counter[x[left]]:                     counter[x[left]] -= 1                 left += 1             res = max(res, right - left + 1)             right += 1         return res

2021-05-18 18:52:30 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 现在有一个长度为m的只包含小写字母‘a’-‘z’的字符串x,求字符串中不同时含有n,p,y三个字母的最长字串的长度是多少?。(对于字符串”abc”来说,”c”,”ab”都是原串的子串,但”ac”不是原串子串)-笔试面试资料

提供最优质的资源集合

立即查看 了解详情