相似度

相似度

 1process.stdin.resume();  2process.stdin.setEncoding('utf-8');  3let input = '';  4  5process.stdin.on('data', (data) => {  6 input += data;  7});  8  9process.stdin.on('end', () => { 10 let inputArray = input.trim().split(' '); 11 12 /** 13 * 计算两个字符串的最长公共前缀长度 14 * @param {string} str1 - 第一个字符串 15 * @param {string} str2 - 第二个字符串 16 * @returns {number} 最长公共前缀的长度 17 */ 18 function longestCommonPrefix(str1, str2) { 19 let minLength = Math.min(str1.length, str2.length); 20 for (let i = 0; i < minLength; i++) { 21 if (str1[i] !== str2[i]) { 22 return i; 23 } 24 } 25 return minLength; 26 } 27 28 /** 29 * 计算给定字符串的相似度 30 * @param {string[]} substrings - 子字符串数组 31 * @returns {number} 相似度 32 */ 33 function calculateSimilarity(substrings) { 34 let similarity = 0; 35 const n = substrings.length; 36 for (let i = 0; i < n; i++) { 37 for (let j = i + 1; j < n; j++) { 38 similarity += longestCommonPrefix(substrings[i], substrings[j]); 39 } 40 } 41 return similarity; 42 } 43 44 const similarity = calculateSimilarity(inputArray); 45 console.log(similarity); 46 47 process.exit(); 48});
process.stdin.resume(); process.stdin.setEncoding('utf-8'); let input = ''; process.stdin.on('data', (data) => { input += data; }); process.stdin.on('end', () => { let inputArray = input.trim().split(' '); /** * 计算两个字符串的最长公共前缀长度 * @param {string} str1 - 第一个字符串 * @param {string} str2 - 第二个字符串 * @returns {number} 最长公共前缀的长度 */ function longestCommonPrefix(str1, str2) { let minLength = Math.min(str1.length, str2.length); for (let i = 0; i < minLength; i++) { if (str1[i] !== str2[i]) { return i; } } return minLength; } /** * 计算给定字符串的相似度 * @param {string[]} substrings - 子字符串数组 * @returns {number} 相似度 */ function calculateSimilarity(substrings) { let similarity = 0; const n = substrings.length; for (let i = 0; i < n; i++) { for (let j = i + 1; j < n; j++) { similarity += longestCommonPrefix(substrings[i], substrings[j]); } } return similarity; } const similarity = calculateSimilarity(inputArray); console.log(similarity); process.exit(); });

Powered By 可尔物语

浙ICP备11005866号-12