在 Hackerrank 我遇到了这个问题。我有一个接受 3 个参数的函数。示例 -->
func getShiftedString(s: String, leftShifts: Int, rightShifts: Int) -> String
左移:字符串的单次循环旋转,其中第一个字符变为最后一个字符,所有其他字符向左移动一个索引。例如,abcde 左移一次后变为 bcdea,左移两次后变为 cdeab。
Right Shift 字符串的单次循环旋转,其中最后一个字符成为第一个字符,所有其他字符都向右移动。例如,abcde 在一次右移后变为 eabcd,在两次右移后变为 deabc。
我在 python 中做了同样的问题并通过了所有的测试用例
def getShiftedString(s, leftShifts, rightShifts):
i=(leftShifts-rightShifts)%len(s)
return s[i:]+s[:i]
现在我正试图迅速解决同样的问题。我在下面添加了我的解决方案
func getShiftedString(s: String, leftShifts: Int, rightShifts: Int) -> String {
// Write your code here
let len = s.count
var i=(leftShifts-rightShifts)%len
let c = s[..<i]
let b = s[i...]
let d = c + b
return d }
我是快速编程的新手,我无法解决这个问题。谁能帮我快速解决这个问题?
提前致谢。