申明:本文只用做自己的学习记录
题目
一个字符串 s, 由若干单词组成, 单词之间用空格隔开, 返回字符串中最后一个单词的长度, 如果不存在最后一个单词, 请返回 0
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
示例 1:
输入:s = “Hello World”
输出:5
示例 2:
输入:s = " "
输出:0
代码
//解法1:
func lengthOfLastWord(s string) int {
//根据空格分隔字符串
slice := strings.Fields(s)
//如果为空则返回0
if slice == nil || len(slice) == 0 {
return 0
}
//返回最后一位字符长度
return len(slice[len(slice)-1])
}
//解法2:
//从右往左第一个没有空格的字符开始记录为i
//之后接在i的后面,继续向左遍历,遇到第一个空字符为止,i-j即为最后一位字符长度
func lengthOfLastWord(s string) int {
i := len(s) - 1
//从右往左,若一直是空格则一直往左走
for i >= 0 && s[i] == ' ' {
i--
}
//先从第一个没有空格的单词的最后一个字母起
j := i
for j >= 0 && s[j] != ' ' {
j--
}
//i-j则为最后一个单词的长度
return i - j
}