当前位置: 面试刷题>> 识别名人 (经典算法题500道)


### 题目描述补充 **题目**: 识别名人——实现一个名人识别系统,该系统能够根据用户输入的名人姓名(或关键词),从给定的名人数据库中检索并返回相关的名人信息。名人信息至少包括姓名、职业(如演员、歌手、科学家等)和一张代表图片的URL。如果数据库中不存在该名人,则返回一条“未找到该名人”的消息。 ### 示例数据库(模拟) 为了简化问题,我们假设名人数据库是以JSON格式存储在文件中的,内容如下(实际部署时可能存储在数据库、云服务等中): ```json [ { "name": "周杰伦", "profession": "歌手, 演员, 导演, 音乐制作人", "image_url": "https://example.com/jaychou.jpg" }, { "name": "爱因斯坦", "profession": "物理学家", "image_url": "https://example.com/einstein.jpg" }, { "name": "玛丽莲·梦露", "profession": "演员, 模特, 制片人", "image_url": "https://example.com/marilyn.jpg" } ] ``` ### 示例代码 #### PHP 示例 ```php ``` #### Python 示例 ```python import json def find_celebrity(name, celebrities): for celebrity in celebrities: if name.lower() in celebrity['name'].lower(): return celebrity return "未找到该名人" with open('celebrities.json', 'r') as file: celebrities = json.load(file) name = "爱因斯坦" # 示例输入 result = find_celebrity(name, celebrities) print(result if isinstance(result, dict) else result) ``` #### JavaScript 示例 ```javascript const fs = require('fs'); const path = require('path'); const celebrities = JSON.parse(fs.readFileSync(path.join(__dirname, 'celebrities.json'), 'utf8')); function findCelebrity(name, celebrities) { for (const celebrity of celebrities) { if (celebrity.name.toLowerCase().includes(name.toLowerCase())) { return celebrity; } } return "未找到该名人"; } const name = "玛丽莲·梦露"; // 示例输入 const result = findCelebrity(name, celebrities); console.log(JSON.stringify(result, null, 2) || result); ``` ### 注意事项 - 以上代码示例均假设`celebrities.json`文件与代码文件位于同一目录下,或适当修改了文件路径。 - 在实际应用中,可能需要考虑性能优化(如使用索引、缓存等),以及安全性(如防止SQL注入、XSS攻击等,尽管这里是文件读取)。 - 码小课网站中有更多关于算法、数据结构、编程语言等的学习内容,欢迎访问学习。
推荐面试题