iOS面试总结
- 输入一个Int 值(1234567),在不转化为String类型时, 输出翻转后的数值(7654321),swift 语言实现如下。
//第一种实现方法,使用递归思想。
var result = 0
@discardableResult
func reverseNumbers(a: Int) -> Int {
let x: Int = a % 10;
// 取余数
let y: Int = a / 10;
// 取整数
result = result * 10 + x;
if y > 0{
reverseNumbers(a: y) // 递归调用
}
return result
}//第二种实现方法, 使用while循环实现。
func reverseNumbers1(a: Int) -> Int {
var x: Int = a % 10// 6
var y: Int = a / 10// 12345
var result: Int = x
while (y != 0){
x = y % 10;
// 5
y = y / 10;
// 1234
result = result * 10 + x;
}
return result
}
运行结果:
文章图片
111
- 给出一个数组Datas 定义一个函数, 在数组中查找元素m, 返回其下标,找不到返回-1(二分法实现)。
// 二分法查找元素底标
func findNumber(arr: inout[Int], tagger: Int) -> Int {
guard arr.count != 0 else {return -1}
var left = 0;
var right = arr.count - 1
while left <= right {
let mid = (left + right) / 2
if arr[mid] == tagger {
return mid
}else if arr[mid] > tagger {
right = mid - 1
}else{
left = mid + 1
}
}
return -1
}
运行截图:
文章图片
22
- 封装一个函数,传递两个数组array1, array2,求array1数组中是否包含array2相同顺序的全部元素,如果包含, 返回array1中相应的全部下标。
// 判断数组中是否包含另外一个数组 顺序也要对应上
func orderContain(array1: inout[Int], array2:inout[Int]) -> [Int] {
guard array1.count > array2.count,
array2.count != 0 else {return [-1]}
var array: [Int] = []
for i in 0..
【iOS面试总结】运行结果如下截图:
文章图片
33
推荐阅读
- 7.9号工作总结~司硕
- 2020-04-07vue中Axios的封装和API接口的管理
- iOS中的Block
- 最有效的时间管理工具(赢效率手册和总结笔记)
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 2018国考外交部面试演讲不再难——只需把握好三点
- 数据库总结语句
- 周总结|周总结 感悟
- 周总结43
- 2019-08-29|2019-08-29 iOS13适配那点事