Hackerrank で、この問題に遭遇しました。3つの引数を取る関数があります。例 -->
func getShiftedString(s: String, leftShifts: Int, rightShifts: Int) -> String
左シフト: 最初の文字が最後の文字になり、他のすべての文字が 1 インデックス左にシフトされる、文字列の 1 回の循環回転。たとえば、abcde は 1 回左シフトすると bcdea になり、2 回左シフトすると cdeab になります。
右シフト 最後の文字が最初の文字になり、他のすべての文字が右にシフトされる、文字列の 1 回の循環回転。たとえば、abcde は 1 回右シフトすると eabcd になり、2 回右シフトすると 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 }
私はこの質問を解決できません。誰でもこれを迅速に解決する方法を教えてもらえますか?
前もって感謝します。