Amazon VO 真题实录:字符串中金额统一打 85 折!(附 Java 实现 & 面试节奏拆解) – 面试辅助 – VO support – 代面试 – 一亩三分地

以下来自于我们CSOahelp真实客户的面试记录,CSOahelp面试辅助老师全程提供解题思路、Follow up 以及详细完整代码; 不用刷题轻松进大厂。

这一轮是 Amazon Virtual Onsite(VO),题目偏实用类,重点考察字符串操作、边界处理和实现稳健性。

面试官一上来就给出了需求,不绕弯子:

“Write me a function that takes in a string and decreases all monetary values in the string by 15%.”

举了两个例子,语气很直接:

// "I spent $100.00 on Amazon this week."
// → "I spent $85.00 on Amazon this week."

// "This candy costs $1.00"
// → "This candy costs $0.85"

❓Clarification(澄清环节)

我的ipad上出现了以下几个澄清问题,我依次向面试官进行了询问:

如果字符串为空,返回空字符串?

如果字符串里没有金额,是否原样返回?

是否可以假设所有金额都是以 $ 符号开头?

面试官的答复都很简洁:“Yes” ✅

这一环节确认完,辅助老师已经写完了大量代码,我就可以继续念思路了。

        
Algorihtm

Sure I think we can basicaly do string parsing, we scan the
string with a pointer, and if we see a money symbal like dollar
sign or for other currencies

we start from there and find the number after the sign, 
then we decrease the number by 15% and append to result string 

we can continue to do this until the string is finished

can I start coding
        
    


解题思路:字符串扫描 + 数值更新

目标是:找到所有金额,打 85 折,保留两位小数

算法关键点如下

  1. 扫描整串文本,识别出美元符号 $
  2. $ 开始,向后提取紧跟的数字和小数点(如 $100.00);
  3. 将提取出的金额转为浮点数,乘以 0.85
  4. 格式化回字符串(保留两位小数),拼接回新字符串;
  5. 其余字符原样拼接。

这题不需要 regex,用指针遍历更直观、更面试友好。

随后我继续抄写了ipad上的大量代码,获得了面试官的认可,coding结束之后面试官与我开始了时空复杂度分析

时间与空间复杂度分析

  • 时间复杂度:O(n)
    每个字符仅遍历一次。substring()Double.parseDouble()String.format() 也都是常数时间操作。
  • 空间复杂度:O(n)
    使用了一个 StringBuilder 保存最终字符串,最多和原字符串等长。

🧠 面试官追问

面试官后来又加了一句:

“What if we want to support euros or other currencies?”

我顺势提到:

  • 可以拓展 Set<Character> 支持更多符号,如 , ¥
  • 还可以写一个正则版本来适配不同货币格式;
  • 如果涉及汇率转换,还需构建币种到折扣率的映射表。

面试官点头示意 👍,没继续深挖实现细节。

收到面试通过的消息之后,我非常感慨,到现在为止其实我还是不太懂这道题问的是什么,但是由于有CSOahelp面试辅助服务,我成功的又向北美大厂迈进了一步。听辅助老师说,前面入职大厂的师兄姐们都混的不错,因为面试真的难度太高了反而入职工作之后工作很简单很容易做,再加上现在有强力AI,其实入职之后的初级岗位真的不难。现在我非常期待在北美开启新的职场生涯。

如果你也在准备Amazon、Meta、TikTok等大厂的算法与系统设计面试,却不清楚如何拆题和应对各种边界,欢迎添加微信 csvohelp,即可领取北美面试求职通关秘诀。我们也有代面试,面试辅助,OA代写等服务助您早日上岸~


Leave a Reply

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