首页 > 试题广场 >

怕npy的牛牛

[编程题]怕npy的牛牛
  • 热度指数:180 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
现在有一个长度为m的只包含小写字母‘a’-‘z’的字符串x,求字符串中不同时含有n,p,y三个字母的最长字串的长度是多少?。(对于字符串”abc”来说,”c”,”ab”都是原串的子串,但”ac”不是原串子串)


示例1

输入

"abcdefghijklmn"

输出

14

说明

因为所有子串都不同时含有n,p,y,所以最长子串的长度即为字符串x的长度14。

示例2

输入

"ynp"

输出

2

说明

长度为2的字串”yn”,”np”都符合题意,不存在长度>=3的符合条件的子串。

示例3

输入

"ypknnbpiyc"

输出

7

说明

“pknnbpi”为其符合条件的最长子串,长度为7。


备注:

对于的数据

对于的数据

函数共有一个参数,即题目描述中的字符串x,保证字符串中字母均为小写字母
注意,所给字符串不含引号
头像 Bernard5
发表于 2020-12-01 22:03:38
其实就是要找最长的一段不含有n或p或y的字串长度。 可以用双指针维护但其实并没有必要。 class Solution: def Maximumlength(self , x ): n = x.split('n') p = x.split('p') y = x.split( 展开全文
头像 灬初见灬
发表于 2020-12-02 09:44:19
双指针做法 创建两个指针i,j分别记录子串的尾部和头部子串的长度即为i-j+1创建一个a数组记录子串中每个字母出现的次数然后通过i指针不断右移获取最长不含npy的子串当check()到npy同时出现时,j指针右移直至n、p或y中一个为0 class Solution { public: in 展开全文
头像 fixit
发表于 2020-12-02 22:03:43
本体其实就是要找一段不含有n或p或y的字串长度的最大值。python代码如下 class Solution: def Maximumlength(self , x ): # write code here nn=map(len,x.split('n')) 展开全文
头像 Free的午后
发表于 2020-12-03 09:28:02
用split对字符串进行分割,然后遍历字符串数组,找出长度最大的子串即可 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回符合题意的最 展开全文