我需要创建一个将字符串转换为类型的函数。我根本不能使用.reverse()函数。这必须是使用循环的算法
这是我到目前为止,但循环没有执行...我正在快速的操场上工作。提前致谢
func reverse(_ phrase: String) -> String
{
var phraseArray = [phrase.characters]
var reverseString = ""
for i in phrase.characters{
var character = phrase.characters.last
reverseString += String(describing: character)
phraseArray.removeLast()
}
return reverseString
}
答案 0 :(得分:2)
这里有一些问题:
phraseArray
是一个包含单个元素的数组,String.CharacterView
返回的phrase.characters
实例。如果要创建包含字符视图字符的新数组,请将字符视图传递给数组初始值设定项。此外,更适合称之为characters
:
var characters = Array(phrase.characters)
phrase.characters.last
将始终返回相同的字符,因为迭代之间不会更改phrase
或其characters
。
作为第1点的结果,phraseArray.removeLast()
将删除填充的单个字符视图,不字符视图字符中的字符。在第1点进行更改后,您可以使用characters.removeLast()
删除最后一个字符,和让removeLast()
函数返回该字符。您可以使用此返回值替换phrase.characters.last
。
实施这些更改,看看它是如何发生的。如果您遇到进一步的问题,请告诉我。
答案 1 :(得分:0)
我不会为你写答案。但我可以描述一下算法: 你需要:
答案 2 :(得分:0)
func reverse(_ phrase: String) -> String
{
var phraseArray = Array(phrase.characters)
var rev = [Character]()
var len = phraseArray.count
for i in 0..<len {
rev.append(phraseArray.removeLast())
}
return String(rev)
}
print(reverse("AB"))