gpt4 book ai didi

swift - 旋转 Swift 数组

转载 作者:搜寻专家 更新时间:2023-10-31 21:59:11 26 4
gpt4 key购买 nike

我正在尝试使用 Swift 3 解决我在编码挑战网站上发现的这个问题。

我相信你们中的大多数人以前都看过它,但如果您还没有看过,那就是......

这个想法是你拿一个字符串并将它旋转 x 次。所以使用他们的示例“12345”旋转 2 倍将是“34512”

这是我写的,但是当我在 Playground 中打印它时,它只是打印出我输入的完全相同的字符串。

func rotateSring(originalString: String, numberOfRotations: Int) -> String {

var tempArray: [String] = []
tempArray.append(originalString)

let count = numberOfRotations

for _ in 1...count {
for letter in tempArray {

tempArray.remove(at: 0)
tempArray.append(letter)

}
}

let newString = tempArray.joined(separator: "")

return newString
}

我也尝试了一个变体

func rotateSring(originalString: String, numberOfRotations: Int) -> String {

var tempArray: [String] = []
tempArray.append(originalString)

let count = numberOfRotations

for _ in 1...count {

let test =tempArray.remove(at: 0)

tempArray.append(test)
}

let newString = tempArray.joined(separator: "")

return newString
}

当我说的时候都没有产生想要的结果

let testRun = rotateSring(originalString: "12345", numberOfRotations: 2)

我想要“34512”,但我得到的是“12345”

如果我不得不猜测我做错了什么,我认为我只是从头到尾旋转整个阵列,所以它确实移动了,但它移动了整圈。

如果有人能解释我做错了什么,以及我该如何解决,那就太好了。谢谢

最佳答案

我已经完成了您的解决方案,发现了一些错误。以下实现将起作用。

func rotateSring(originalString: String, numberOfRotations: Int) -> String {

var tempArray: [Character] = Array(originalString.characters)

let count = numberOfRotations

for _ in 1...count {
let letter = tempArray.removeFirst()
tempArray.append(letter)
}

let newString = String(tempArray)

return newString
}

let testRun = rotateSring(originalString: "12345", numberOfRotations: 2)

现在让我解释一下这些变化:

  var tempArray: [String] = []
tempArray.append(originalString)

// to
var tempArray: [Character] = Array(originalString.characters)

在 Swift 中,String 不符合 Sequence 类型协议(protocol),因此您需要使用 Character 数组,因此当您尝试要遍历 letters,您实际上是在遍历整个字符串,即 12345

  // tempArray = ["12345"] not ["1", "2", "3", "4", "5"]
for letter in tempArray {
tempArray.remove(at: 0)
tempArray.append(letter)
}

关于swift - 旋转 Swift 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43446674/

26 4 0
文章推荐: html - 如何使用 CSS 或 HTML 将特定的 HTML 行和列加粗?
文章推荐: php - 使用 get 方法自定义 URL Helper 重定向
文章推荐: javascript - 如何使