NC207593. 怕npy的牛牛
描述
输入描述
对于的数据
对于的数据
函数共有一个参数,即题目描述中的字符串x,保证字符串中字母均为小写字母注意,所给字符串不含引号
示例1
输入:
"abcdefghijklmn"
输出:
14
说明:
因为所有子串都不同时含有n,p,y,所以最长子串的长度即为字符串x的长度14。
示例2
输入:
"ynp"
输出:
2
说明:
长度为2的字串”yn”,”np”都符合题意,不存在长度>=3的符合条件的子串。
示例3
输入:
"ypknnbpiyc"
输出:
7
说明:
“pknnbpi”为其符合条件的最长子串,长度为7。
C++(clang++11) 解法, 执行用时: 40ms, 内存消耗: 6436K, 提交时间: 2021-01-22 22:39:07
int a[1111]; int ok() { return (a['n']>0)&&(a['p']>0)&&(a['y']>0); } class Solution { public: int Maximumlength(string s) { int n=s.length(),i,j,ans=0; s+='0'; j=-1; for(i=0;i<n;i=i+1) { while(j<n&&!ok()) { j++; a[s[j]]++; } ans=max(ans,j-i); a[s[i]]--; } return ans; } };
Go(1.14.4) 解法, 执行用时: 17ms, 内存消耗: 3984K, 提交时间: 2020-12-01 21:04:23
package main // github.com/EndlessCheng/codeforces-go func Maximumlength(s string) (ans int) { c := ['z'+1]int{} l := 0 for r := range s { c[s[r]]++ for c['n']*c['p']*c['y'] > 0 { c[s[l]]-- l++ } if r-l+1 > ans { ans = r - l + 1 } } return }
Python3(3.9) 解法, 执行用时: 643ms, 内存消耗: 21304K, 提交时间: 2020-12-02 11:50:35
class Solution: def Maximumlength(self , x ): return max([max([len(i) for i in x.split(j)]) for j in 'npy'])