JavaScript 中包含两个不同字符的最长字符串
我们需要编写一个 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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP