Swift 在不使用预定义函数的情况下反转字符串
请原谅,我是这门语言的新手 编辑:是否有方法反转数组元素的位置 我试图创建一个函数来测试给定的输入是否是回文。我试图避免使用使用reversed()的函数 解决方案1Swift 在不使用预定义函数的情况下反转字符串,swift,Swift,请原谅,我是这门语言的新手 编辑:是否有方法反转数组元素的位置 我试图创建一个函数来测试给定的输入是否是回文。我试图避免使用使用reversed()的函数 解决方案1 let word=“aabbaa” 设chars=word.characters 让一半=字符数/2 设leftSide=Array(chars)[0..解决方案1 let word=“aabbaa” 设chars=word.characters 让一半=字符数/2 让leftSide=Array(chars)[0..您的方法可以
let word=“aabbaa”
设chars=word.characters
让一半=字符数/2
设leftSide=Array(chars)[0..解决方案1
let word=“aabbaa”
设chars=word.characters
让一半=字符数/2
让leftSide=Array(chars)[0..您的方法可以用于反转数组。但是您必须
在起始位置插入原始数组的每个元素
目标数组的位置(将其他元素移动到末尾):
可以直接对字符串的字符执行相同操作:
// Swift 2.2:
let word = "TEST"
var reversed = ""
for char in word.characters {
reversed.insert(char, atIndex: reversed.startIndex)
}
print(reversed) // "TSET"
// Swift 3:
let word = "TEST"
var reversed = ""
for char in word.characters {
reversed.insert(char, at: reversed.startIndex)
}
print(reversed)
你的方法可以用来反转数组,但你必须
在起始位置插入原始数组的每个元素
目标数组的位置(将其他元素移动到末尾):
可以直接对字符串的字符执行相同操作:
// Swift 2.2:
let word = "TEST"
var reversed = ""
for char in word.characters {
reversed.insert(char, atIndex: reversed.startIndex)
}
print(reversed) // "TSET"
// Swift 3:
let word = "TEST"
var reversed = ""
for char in word.characters {
reversed.insert(char, at: reversed.startIndex)
}
print(reversed)
反转的另一种解决方案:
var original : String = "Test"
var reversed : String = ""
var c = original.characters
for _ in 0..<c.count{
reversed.append(c.popLast()!)
}
var-original:String=“Test”
var反转:String=“”
var c=原始字符
对于uu0..另一种反转解决方案:
var original : String = "Test"
var reversed : String = ""
var c = original.characters
for _ in 0..<c.count{
reversed.append(c.popLast()!)
}
var-original:String=“Test”
var反转:String=“”
var c=原始字符
对于uu0..我的解决方案如下:
extension String {
func customReverse() -> String {
var chars = Array(self.characters)
let count = chars.count
for i in 0 ..< count/2 {
swap(&chars[i], &chars[count - 1 - i])
}
return String(chars)
}
}
let input = "abcdef"
let output = input.customReverse()
print(output)
扩展字符串{
func customReverse()->字符串{
var chars=数组(self.characters)
让count=chars.count
对于0中的i..<计数/2{
交换(&chars[i],&chars[count-1-i])
}
返回字符串(字符)
}
}
让输入=“abcdef”
让输出=输入。customReverse()
打印(输出)
你可以试试。这是我的解决方案:
extension String {
func customReverse() -> String {
var chars = Array(self.characters)
let count = chars.count
for i in 0 ..< count/2 {
swap(&chars[i], &chars[count - 1 - i])
}
return String(chars)
}
}
let input = "abcdef"
let output = input.customReverse()
print(output)
扩展字符串{
func customReverse()->字符串{
var chars=数组(self.characters)
让count=chars.count
对于0中的i..<计数/2{
交换(&chars[i],&chars[count-1-i])
}
返回字符串(字符)
}
}
让输入=“abcdef”
让输出=输入。customReverse()
打印(输出)
你可以试试。Swift 5
extension String {
func invertedEntropy() -> String {
var word = [Character]()
for char in self {
word.insert(char, at: 0)
}
return String(word)
}
}
var palindrome = "TENET"
palindrome.invertedEntropy()
// "TENET"
斯威夫特5
extension String {
func invertedEntropy() -> String {
var word = [Character]()
for char in self {
word.insert(char, at: 0)
}
return String(word)
}
}
var palindrome = "TENET"
palindrome.invertedEntropy()
// "TENET"
你能给出一个输入和输出的例子吗?word=[“T”,“E”,“S”,“T”]预期输出温度=[“T”,“S”,“E”,“T”]那么你想交换字符吗?好的,等等,这一切都没有意义。1)单词实际上是一个数组,而不是字符串,而单词是一个字符串
2)索引计数
虽然是一个let
常量,但正在发生变异,3)交换这些字母与追加无关。OP、 你能确切地说明你想要做什么吗?所以请更新你的问题。正确的认识不可能了解你的意思;)你能给出一个输入和输出的例子吗?word=[“T”,“E”,“S”,“T”]预期输出温度=[“T”,“S”,“E”,“T”]那么你想交换字符吗?好的,等等,这一切都没有意义。1)单词实际上是一个数组,而不是字符串,而单词是一个字符串
2)索引计数
虽然是一个let
常量,但正在发生变异,3)交换这些字母与追加无关。OP、 请您明确说明您希望执行的操作好吗?因此请更新您的问题。Right know无法了解您的意思;)此错误显示为:第4行第20列的错误:调用中的参数标签不正确(have':atIndex:',expected':at:')已反转。insert(char,atIndex:0)^~~~~~~~atme@JioM.:我的代码是Swift 2.2。现在更新为Swift 3。我可以问一下为什么在Swift 3.0上删除了atIndex吗?@JioM.:它被重命名为insert(\uz,at:)
。使用Swift 3更改了批次。请特别参阅。此错误显示为:第4行第20列的错误:调用中的参数标签不正确(将“:atIndex:”,预期“:At:”)反转。插入(char,atIndex:0)^~~~~~~~atme@JioM.:我的代码是Swift 2.2。现在更新为Swift 3。请问为什么在Swift 3.0上删除了atIndex?@JioM.:它被重命名为insert(u,at:)
。at批次使用Swift 3进行了更改。请特别参阅。
extension String {
func invertedEntropy() -> String {
var word = [Character]()
for char in self {
word.insert(char, at: 0)
}
return String(word)
}
}
var palindrome = "TENET"
palindrome.invertedEntropy()
// "TENET"