iOS面试系列·今日头条iOS高级工程师第2轮面试回忆

2,364 阅读1分钟
原文链接: xiaozhuanlan.com

面试形式:牛客网的视频面试,这个网页里面右上角有个视频窗口,然后主要页面内容是在线编程窗口。

1. 编程题:RLE算法,编写一个函数,实现统计字符次数的功能:例如输入为aaabbccc,输出为a3b2c3。不限语言。

解析:比较简单,可以参考这个blog.51cto.com/lanchaohuan…

2. 编程题:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的.

解析:思路,递归,从根节点开始,判断左右子节点是否对称,若对称,递归,若不对称,则返回NO。

3. 问答题:你认为自动布局怎么实现的

  • 解析:先提到系统提供的NSLayoutConstraint,再介绍Masonry怎样基于它的封装?

  • 然而面试官继续问AutoLayout原理是?它的原理就是一个线性公式!比如,创建约束,iOS6中新加入了一个类:NSLayoutConstraint。它的约束满足这个公式: