之前我们做个一道左旋转字符串的问题, 今天看一道左旋转字符串的问题
如果你想知道什么题? 既然你诚心诚意的发问了, 我就大发慈悲的告诉你!
题目: 给一个数组 s , 数字k, 把数组转换成,就是一个数组通过K的值把数组后K位移到前面。
例如:
s = [1, 2, 3, 4, 5, 6, 7, 8, 9], k=3, 返回 [7, 8, 9, 1, 2, 3, 4, 5, 6]
s = [1, 2, 3, 8, 9,10], k=3, 返回 [8, 9, 10, 1, 2, 3]
思路都是, 数组切割再拼接
方法1:
肯定要用swift的特性啦, 这次用到这个两个函数
dropLast, suffix
这种方法最简洁, 一句代码即可
func change(_ s: [Int], _ n: Int) -> [Int] {
return s.suffix(n) + s.dropLast(n)
}
方法2:
切割拼接
func change(_ s: [Int], _ n: Int) -> [Int] {
if n < 0 || n > s.count {
return s;
}
return ([Int])(s[s.count - n..<s.count] + s[0..<s.count - n])
}
网友评论