Apple 面经|一道看似简单但很考细节的字符串 Coding 题– 面试真题 – 面试辅助 – 一亩三分地 – 代面试 – VO辅助

Given a string, compress consecutive repeated characters.

For example:

Input:  "aaabbccccd"
Output: "a3b2c4d1"

就是统计连续出现的相同字符,并把字符和出现次数拼起来。

例如:

aaabbccccd

结果是:

a3b2c4d1

拿到题之后,我先和面试官确认了一下:

如果字符只出现一次,是否也需要保留数字 1。

面试官确认需要。

之后开始写代码。

整体思路比较简单,用一个指针从左到右遍历字符串,同时记录当前字符和连续出现的次数。

只要下一个字符和当前字符相同,就继续累加。

遇到不同字符时,把:

character + count

加入结果,然后重新开始统计新的字符。

最后还需要把最后一组字符加入结果。

时间复杂度是:

O(n)

空间复杂度主要是最终生成的字符串。

Follow-up

代码写完以后,面试官给了几个测试:

"a"
"aaaa"
"abc"
"aabbcc"

其中比较容易漏的是最后一组字符。

如果循环里只在“字符发生变化”时加入结果,那么字符串遍历结束以后,还需要单独处理最后一次统计。

之后面试官又问了一下:

What if the input string is very large?

我回答不需要额外保存整个中间数组,可以一边遍历一边构造结果,因此整体仍然只需要一次扫描。

最后跑了一遍几个 example,结果正常,这道题就结束了。

整体感受

这次 Apple 的 Coding 本身不算难,题目比较基础。

面试官主要关注的是代码是否清晰、边界条件有没有考虑完整,以及写完之后能不能快速解释自己的实现。

并不是那种特别复杂的算法题,但如果一开始没有确认输入输出规则,也很容易在小地方出错。

csoahelp

我们最近接触的 Apple、Google、TikTok、Stripe 等技术面试里,也经常遇到这种题目本身不难,但需要边写边和面试官确认细节的情况。

csoahelp 提供技术面试实时文本辅助和 Mock Interview,可以在面试过程中帮助快速整理题意、Coding 思路、边界条件以及后续追问,让整个回答过程更加顺畅。

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

Leave a Reply

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