Airbnb 面试真题:为用户评论添加搜索标签 – 一亩三分地 – OA代写 – VO 辅助 – 代面试

Airbnb 希望支持基于用户评论的搜索。为了提升搜索效果,需要把评论中的特定词语打上标签。

给定:

Review:
"I visited San Francisco for work and stayed at Airbnb. I really loved the city and the home where I stayed."

Tags:
{
"Airbnb": "business",
"san francisco": "city"
}

如果评论中出现了 tag 的 key,就需要把该词改写成:

[tag_value]{原词}

输出:

"I visited [city]{San Francisco} for work and stayed at [business]{Airbnb}. 
I really loved the city and the home where I stayed."

这题表面是字符串替换,实际重点在这些细节:

  1. 大小写匹配
    • tag 里是 san francisco
    • 原文里是 San Francisco
    • 通常需要 case-insensitive match,但保留原文大小写输出。
  2. 多词匹配
    • san francisco 是两个词,不是单个 token。
    • 简单按空格 split 不够。
  3. 避免错误替换
    • 不能把单词内部误匹配。
    • 例如 Airbnb 可以匹配,但不能随意匹配某个词的一部分。
  4. 输出格式构造
    • 匹配到的原文片段要保留。
    • 输出格式是 [metadata]{matched_text}

可以把所有 tag key 按长度从长到短排序,然后扫描 review:

1. 从当前位置开始,尝试匹配最长的 tag key
2. 如果匹配成功,输出 [tag]{原文片段}
3. 如果没有匹配,正常输出当前字符
4. 继续向后扫描

为什么要按长度从长到短?

因为如果 tags 里同时有:

"san": "xxx"
"san francisco": "city"

应该优先匹配更长的 san francisco

这是一道典型的字符串匹配题,难点不在代码量,而在边界条件:大小写、多词匹配、最长匹配和原文格式保留。

CSOAHelp 可以帮助候选人:

快速理解题意
拆解核心考点
准备高质量解题思路
模拟面试表达
优化代码与复杂度分析

如果你正在准备 Airbnb、Google、TikTok、OpenAI 等公司的技术面试,CSOAHelp 可以提供真实面试题解析和面试陪练支持。

我们也有代面试,面试辅助,OA代写等服务助您早日上岸~

Leave a Reply

Your email address will not be published. Required fields are marked *