Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một chuỗi làm đối số đầu tiên và một số nguyên dương n làm đối số thứ hai.
Chuỗi có thể chứa một số ký tự lặp lại. Hàm sẽ tìm ra và trả về độ dài của chuỗi con dài nhất từ chuỗi ban đầu, trong đó tất cả các ký tự xuất hiện ít nhất n lần.
Ví dụ -
Nếu chuỗi đầu vào và số là -
const str = 'kdkddj'; const num = 2;
Sau đó, đầu ra phải là -
const output = 5;
vì chuỗi con dài nhất mong muốn là 'kdkdd'
Ví dụ
Sau đây là mã -
const str = 'kdkddj'; const num = 2; const longestSubstring = (str = '', num) => { if(str.length < num){ return 0 }; const map = {} for(let char of str) { if(char in map){ map[char] += 1; }else{ map[char] = 1; } } const minChar = Object.keys(map).reduce((minKey, key) => map[key] < map[minKey] ? key : minKey) if(map[minChar] >= num){ return str.length; }; substrings = str.split(minChar).filter((subs) => subs.length >= num); if(substrings.length == 0){ return 0; }; let max = 0; for(ss of substrings) { max = Math.max(max, longestSubstring(ss, num)) }; return max; }; console.log(longestSubstring(str, num));
Đầu ra
Sau đây là đầu ra của bảng điều khiển -
5