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

tech2022-11-01  116

题号: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】

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

最新回复(0)