type
status
date
slug
summary
tags
category
icon
password
- 自我介绍(1min)
- 项目(7min)
- 简介
- 在项目中负责什么?
- xxx那块是怎么做的?yyy哪来?(业务)
- aaa只有 ES 筛选这一种召回方式吗?
- 索引是怎么打上去的?
- ppp 那块怎么做的?数据量多大?qqq?
项目就都是蜻蜓点水式地过一下,也没有深问;可能业务对他来说没什么吸引力/挑战吧,也可能是我讲的不好 hhh
- 算法题:字符串压缩,比如:把”abbcccaddeee”转成”ab2c3ad2e3”(23min)
第一版:cnt 法,开新的字符串
func zipStr(str string) string { ans := "" n := len(str) if n <= 1 { return str } cnt := 0 for i:=0;i<n;i++ { cur := str[i] cnt++ if i == n-1 { // strings.Builder 效率更高 ans += string(cur) if cnt > 1 { ans += fmt.Sprintf("%d", cnt) } return ans } next := str[i+1] if cur != next { ans += string(cur) if cnt > 1 { // 这里可以用 strconv.Itoa ans += fmt.Sprintf("%d", cnt) } cnt = 0 } } return ans }
面试官:你这个怎么开了个新的啊,能不能在原字符串上replace?
第二版:在原字符串上 replace
时间有限+手慢,写了一半被叫停了,就先讲了思路 —— 双指针
func zipStr(str string) string { if len(str) <= 1 { return str } cur := 0 next := 1 for next < len(str) { if str[cur] != str[next] { if next - cur > 1 { oldS := str[cur:next] newS := string(str[cur]) + fmt.Sprintf("%d", next-cur) str = strings.Replace(str, oldS, newS, 1) cur += len(newS) next = cur+1 continue } else { cur++ } } next++ } if next - cur > 1 { oldS := str[cur:next] newS := string(str[cur]) + fmt.Sprintf("%d", next-cur) str = strings.Replace(str, oldS, newS, 1) cur += len(newS) next = cur+1 } return str }
面试结束。
在我的视角看,这就是KPI面。
面试官开始就不耐烦,一直很急的样子,我讲话一直打断我。没问八股/场景/系统设计,问项目也都是蜻蜓点水,然后问几个小点完就把我晾在那里写算法题,写完了第一版问我能不能优化一下,我写一半还没写好(可能比较慢)就突然说有什么要问他的,我只能讲了思路就作罢。
面试体验很差,仅次于我21年面网易云(面试官迟到30min还一副一直想把我比下去的态度,而非在“筛选候选人”)。
- Author:王帅真
- URL:https://qizong007.top/article/ant-group-interview-1
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!