【发布时间】:2018-01-10 03:55:37
【问题描述】:
我有一个扩展名 String,有两个函数名 isAnagramOf 和 isPalindrome。第一个函数应该将输入作为字符串,然后首先它将用没有空格的空格替换空格,然后对字符串进行排序和比较,并返回一个 Bool 以确定是否是 anagram。 第二个名为 isPalindrome 的函数也将忽略空格和大写,然后它将反转字符串并比较以返回如果它反转。
我是 swift 的新手,并且正在学习教程,但是无论我如何尝试编写它,我都会不断收到这些错误。我现在已经经历了至少 10 次,但无法让它工作
如果有人可以帮助编写这个很棒的代码,我也愿意向向我展示另一种编写方式的人开放。也许先作为一个数组然后对字符串进行排序,但我不确定。
extension String {
func isAnagramOf(_ s: String) -> Bool {
let lowerSelf = self.lowercased().replacingOccurrences(of: " ", with: "")
let lowerOther = s.lowercased().replacingOccurrences(of: " ", with: "")
return lowerSelf.sorted() == lowerOther.sorted() // first error:Value of type 'String' has no member 'sorted
}
func isPalindrome() -> Bool {
let f = self.lowercased().replacingOccurrences(of: " ", with: "")
let s = String(describing: f.reversed()) //second error:Value of type 'String' has no member 'reversed'
return f == s
}
}
【问题讨论】: