class Solution static func isLetter_ character Character - Bool let characterSet = CharacterSetletters let unicodeScalar = UnicodeScalarStringcharacter! return characterSetco
编译错误是因为在函数中使用了静态方法isLetter,而静态方法无法在非静态方法中直接调用。解决方法是将isLetter方法改为实例方法,然后在lengthOfLastWord方法中使用self.isLetter调用。修改后的代码如下:
class Solution {
func isLetter(_ character: Character) -> Bool {
let characterSet = CharacterSet.letters
let unicodeScalar = UnicodeScalar(String(character))!
return characterSet.contains(unicodeScalar)
}
func lengthOfLastWord(_ s: String) -> Int {
var t: String = String(s.reversed())
var l: Int = 0
var ans: Int = 0
for i in t {
if l != 0 && i == " " && self.isLetter(t[l-1]) {
return ans
}
l += 1
if self.isLetter(i) {
ans += 1
}
}
return ans
}
}
这样就解决了编译错误问题
原文地址: https://www.cveoy.top/t/topic/ig9W 著作权归作者所有。请勿转载和采集!