LeetCode-58. 最后一个单词的长度(Goland实现)
LeetCode 实现 一个 长度 最后 单词 58 GoLand
2023-09-27 14:28:25 时间
给定一个仅包含大小写字母和空格 ' ' 的字符串 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】
❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)
相关文章
- DFS解决LeetCode 130被围绕的区域
- LeetCode每日一练 —— 225. 用队列实现栈
- 【LeetCode】超级洗衣机 [H](贪心)
- LeetCode_拓扑排序_BFS_中等_210.课程表 II
- LeetCode_双指针_优先级队列_困难_23.合并K个升序链表
- LeetCode_回溯算法_简单_17.电话号码的字母组合
- 【Leetcode】Binary Tree Level Order Traversal
- Leetcode 细节实现 Set Matrix Zeroes
- Gas Station [leetcode] 两个解决方案
- 【LeetCode从零单排】No221.Maximal Square
- 【LeetCode从零单排】No19.RemoveNthNodeFromEndofList
- 「LeetCode」19. 删除链表的倒数第 N 个结点
- LeetCode-876. 链表的中间结点(Goland实现)
- LeetCode-111. 二叉树的最小深度(Goland实现)
- LeetCode-53. 最大子序和(Goland实现)
- [LeetCode] 242. Valid Anagram 验证变位词
- [LeetCode] 309. Best Time to Buy and Sell Stock with Cooldown 买卖股票的最佳时间有冷却期
- [LeetCode] 225. Implement Stack using Queues 用队列来实现栈
- leetcode 相交链表 python实现
- leetcode 20 有效的括号
- leetcode 28 找出字符串第一个匹配的下标(KMP实现strStr)