利用JavaScript解决问题:你得到一个循环字符串的子字符串S可以多次连接到自身以获得此循环字符串的最小可能字符串的长度是多少?
以下是用JavaScript解决此问题的代码:
function findMinLength(s) { let n = s.length; for (let i = 1; i <= n; i++) { // 如果长度不能被子串长度整除,则跳过 if (n % i !== 0) { continue; } let isRepeating = true; let numRepeats = n / i; // 检查子串是否连续重复 for (let j = 0; j < n; j++) { if (s[j] !== s[j % i]) { isRepeating = false; break; } } if (isRepeating) { return i; } } return n; }
// 测试 console.log(findMinLength("abcabcabc")); // 3 console.log(findMinLength("ababab")); // 2 console.log(findMinLength("aaa")); // 1 console.log(findMinLength("abcde")); // 5 console.log(findMinLength("a")); // 1
该函数使用循环来尝试每个可能的子串长度。对于每个长度,它检查是否可以将原始字符串拆分成该长度的子串的重复序列。如果可以,则返回该长度。如果没有找到重复子串,则返回原始字符串的长度作为最小长度
原文地址: https://www.cveoy.top/t/topic/fhqA 著作权归作者所有。请勿转载和采集!