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('\n'); 11 let pattern = inputArray[0]; 12 let s = inputArray[1]; 13 let result = followsPattern(pattern, s); 14 console.log(result ? 'TRUE' : 'FALSE'); 15 process.exit(); 16}); 17 18function followsPattern(pattern, s) { 19 let words = s.split(' '); 20 21 // 如果pattern和words的长度不相等,直接返回false 22 if (pattern.length !== words.length) { 23 return false; 24 } 25 26 let charToWordMap = {}; 27 let wordToCharMap = {}; 28 29 for (let i = 0; i < pattern.length; i++) { 30 let char = pattern[i]; 31 let word = words[i]; 32 33 // 检查字符到单词的映射是否已存在,如果存在则检查是否一致 34 if (charToWordMap.hasOwnProperty(char)) { 35 if (charToWordMap[char] !== word) { 36 return false; 37 } 38 } else { 39 charToWordMap[char] = word; 40 } 41 42 // 检查单词到字符的映射是否已存在,如果存在则检查是否一致 43 if (wordToCharMap.hasOwnProperty(word)) { 44 if (wordToCharMap[word] !== char) { 45 return false; 46 } 47 } else { 48 wordToCharMap[word] = char; 49 } 50 } 51 52 return true; 53}
Copyright ©2010-2022 比特日记 All Rights Reserved.
Powered By 可尔物语