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});
Copyright ©2010-2022 比特日记 All Rights Reserved.
Powered By 可尔物语