LeetCode

58. Length of Last Word

2017-02-06  本文已影响1人  小万叔叔
/*
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.

If the last word does not exist, return 0.

Note: A word is defined as a character sequence consists of non-space characters only.

For example,
Given s = "Hello World",
return 5.
*/
/*
Thinking:
使用系统函数,切分成数组,计算最后一个的长度即可。
不使用系统函数,反向遍历,遇到空格则终止,但要考虑从不是空格的位置开始。
*/

func lengthOfLastWord(_ s: String) -> Int {
    let length = s.lengthOfBytes(using: .ascii)
    guard length > 0 else {
        return 0
    }

    let charArrays = s.characters
    var lastWordLength = 0
    for i in stride(from: length - 1, through: 0, by: -1) {
        let index = charArrays.index(charArrays.startIndex, offsetBy: i)
        if charArrays[index] != " " {
            lastWordLength += 1
        }
        else {
            if lastWordLength != 0 {
                break
            }
        }
    }

    return lastWordLength
}

print(lengthOfLastWord("abc def"))
print(lengthOfLastWord(""))
print(lengthOfLastWord(" "))
print(lengthOfLastWord("abc"))
print(lengthOfLastWord("abc def   ghi  "))
上一篇 下一篇

猜你喜欢

热点阅读