刚刚电面结束,recruiter已经来邮件说过了。
面试官开始先介绍了一下自己, 然后让我自我介绍,接着做题:
Given an API to fetch page (10 results on each page):
MAX_RESULTS = 103
def fetch_page(page):
page = page or 0 # start from page 0 if not specified
return {
"page": page + 1,
"results": [range(10 * page, min(10 * (page + 1), MAX_RESULTS))]
}
Implement a ResultRecher class with a fetch method to return required number of results:
class ResultRecher:
def fetch_page(num_results):
和利口 要五八(read4) 一个思路。Follow up:
- what if the fetch_page has a 30% possibility to fail? -> add retry, implement retry with a limit
- what if sometimes the server may be overloaded, retry immediately will make it even worse? no need to consider auto
scale -> add wait time between retries
四十分钟做完然后又瞎扯了一会,提前结束了。