做网站的回扣,百度网盘app官网,厦门好的做网站公司,外包项目网站1794.【软件认证】最长的指定瑕疵度的元音子串
这个例题#xff0c;是滑动窗口中长度不定求最大的题目#xff0c;在看题之前可以先看一下【leetcode每日一题】【滑动窗口长度不固定】案例。
题目描述
定义#xff1a;开头和结尾都是元音字母#xff08;aeiouAEIOU…1794.【软件认证】最长的指定瑕疵度的元音子串
这个例题是滑动窗口中长度不定求最大的题目在看题之前可以先看一下【leetcode每日一题】【滑动窗口长度不固定】案例。
题目描述
定义开头和结尾都是元音字母aeiouAEIOU的字符串为 元音字符串 其中混杂的非元音字母数量为其 瑕疵度 。比如:
“a” 、 “aa”是元音字符串其瑕疵度都为0“aiur”不是元音字符串结尾不是元音字符“abira”是元音字符串其瑕疵度为2
给定一个字符串请找出指定瑕疵度的最长元音字符子串并输出其长度如果找不到满足条件的元音字符子串输出0。 子串字符串中任意个连续的字符组成的子序列称为该字符串的子串。 思路
窗口里的瑕疵度的字母含量只能是k求最大长度如果大于k缩小窗口但是如果k
因此我们需要判断一下符合条件的才去更新长度。
以下是一个实现了上述算法的 JavaScript 示例代码 const getLongestFlawedVowelSubstrLen (flaw, input) {let count 0let res 0let left 0let set new Set([a,e,i,o,u]);for (let i 0; i input.length; i) {// 向右扩大窗口维护窗口中的瑕疵度if (!set.has(input[i].toLowerCase())) {count}// 缩小窗口while (count flaw) {if (!set.has(input[left].toLowerCase())) {count--;}left;}// 满足条件的时候更新结果。if(set.has(input[i].toLowerCase())set.has(input[left].toLowerCase())countflaw){res Math.max(res, i-left1)}}return res;}978 最长湍流子数组
给定一个整数数组 arr 返回 arr 的 最大湍流子数组的长度 。
如果比较符号在子数组中的每个相邻元素对之间翻转则该子数组是 湍流子数组 。 /*** param {number[]} arr* return {number}*/
var maxTurbulenceSize function(arr) {let simple [-2];for (let i 1; i arr.length; i) {if (arr[i] arr[i - 1]) {simple.push(1);} else if (arr[i] arr[i - 1]) {simple.push(-1);} else {simple.push(0);}}let left 0;let max 1;for(let i 1; i simple.length; i){if(simple[i] ! 0 simple[i] ! simple[i-1]){max Math.max(max, i - left 1);}else{left;simple[left] -2;i left;}}return max;};