编译错误是因为在函数中使用了静态方法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
    }
}

这样就解决了编译错误问题

class Solution static func isLetter_ character Character - Bool let characterSet = CharacterSetletters let unicodeScalar = UnicodeScalarStringcharacter! return characterSetco

原文地址: https://www.cveoy.top/t/topic/ig9W 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录