JavaScript 中含有两个不同字符的最长字符串
javascriptweb developmentfront end technology更新于 2024/8/18 6:14:00
我们需要编写一个 JavaScript 函数,该函数将字符串作为第一个参数,将数字(小于字符串的长度)作为第二个参数。该函数应从原始字符串中删除字符,并准备一个新字符串,使其成为包含最多两个不同字符的最长字符串。
最后,该函数应返回所需字符串的长度。
例如:如果输入字符串是 −
const str = 'kjeljsdl';
那么输出应该是 −
const output = 4;
因为最多包含 2 个不同字符的最长子字符串是 'jljl'
示例
其代码为 −
const str = 'kjeljsdl'; const longestSubstring = (str = '') => { const { length } = str; if (length <= 1){ return 0; }; const keys = [...new Set(str)]; const arr = []; let max = 0; for (let i = 0; i < keys.length - 1; i++) { for (let j = i + 1; j < keys.length; j++) { arr.push(keys[i] + keys[j]); } } arr.forEach(item => { let sub = ''; for (let i = 0; i < str.length; i++) { if (sub[sub.length - 1] === str[i]) { sub = ''; break; } if (item.includes(str[i])) { sub += str[i]; } } if (sub && sub.length > max){ max = sub.length; }; }); return max; } console.log(longestSubstring(str));
输出
控制台中的输出将是 −
4