zl程序教程

您现在的位置是:首页 >  其他

当前栏目

LeetCode-58. 最后一个单词的长度(Goland实现)

LeetCode 实现 一个 长度 最后 单词 58 GoLand
2023-09-27 14:28:25 时间

题号:58. 最后一个单词的长度

         给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词 。

如果不存在最后一个单词,请返回 0 。

说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串 。

示例:

输入: "Hello World"
输出: 5

思路一:从后往前循环字符串,当遇到第一个非空格字符的时候空格标志flag加1,否则不做操作继续下一次循环

思路二:巧用strings包提供的 Fields  方法 进行空白符切割,返回切割后的数组(文章最后有拓展 Fields用法介绍)

func lengthOfLastWord1(s string) int {
	if len(s) == 0 {
		return 0
	}
	var flag = 0
	for i := len(s)-1; i >= 0; i-- {
		if s[i] == ' ' {
			if flag > 0 {
				break
			}
		} else {
			flag ++
		}
	}
	return flag
}
func lengthOfLastWord(s string) int {
	list := strings.Fields(s)
	if len(list) == 0 {
		return 0
	}
	s2 := list[len(list)-1]
	return len(s2)
}

拓展:

       Fields 以连续的空白字符为分隔符,将 s 切分成多个子串,结果中不包含空白字符本身 ;

       如果 s 中只包含空白字符,则返回一个空列表 ;

func main() {
    str := "空格, 有空格, haha haha!"
	strList := strings.Fields(str)
	fmt.Printf("%q\n", strList)//["空格," "有空格," "haha" "haha!"]
}

     以上就是Fields()方法的基本用法了,如果了解请多,请看源码介绍


 往期回顾:

【1】LeetCode-169. 多数元素(Goland实现) 

【2】LeetCode-283. 移动零(Goland实现) 

【3】LeetCode-38. 外观数列(Goland实现) 


❤如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ 

❤如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(๑′ᴗ‵๑)づ╭❤~

❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】

❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)