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 "))