道⻓的 Swift ⾯试题
故胤道⻓
2 2016.12.15 13:36:48 字数 1,151 阅读 19,274
1. 给⼀个数组,要求写⼀个函数,交换数组中的两个元素
⼆X程序员:
好简单啊,直接写出以下结果
普通程序员:
⾸先跟⾯试官沟通,是什么类型的数组?⾯试官会说,任意。普通程序员微微⼀笑,写出以
下代码
⽂艺程序员:
与⾯试官沟通,是什么类型的数组?有什么其他要求和限制?⾯试官会说,这是⼀个Swift⾯
试题。⽂艺程序员⼼领神会,于是写出以下答案
同时对以上代码写上相应测试,检测各种边界情况,再确认⽆误后,才会说,这道题⽬我完成
了。
这道题⽬看似简单,实际上考察了程序员的审题、交流、以及测试的意识。技术上考察了Swift
的泛型和Tuple的性质。
func swap(_ nums: inout [Int], _ p: Int, _ q: Int) {
let temp = nums[p]
nums[p] = nums[q]
nums[q] = temp
}
1
2
3
4
5
func swap<T>(_ nums: inout [T], _ p: Int, _ q: Int) {
let temp = nums[p]
nums[p] = nums[q]
nums[q] = temp
}
1
2
3
4
5
func swap<T>(_ nums: inout [T], _ p: Int, _ q: Int) {
(nums[p], nums[q]) = (nums[q], nums[p])
}
1
2
3
评论29 赞203
评论0