每天一题LeetCode【第30天】(要说再见了👋)

T58. Length of Last Word【Easy

前言

开学了,这个系列要告一段落了,感谢看过我文章的人们~

本来这篇是存在以防万一的,既然最后一篇了就拿出来用吧,偷个懒 ╮(╯▽╰)╭,所以顺序可能不太对。

题目

给定一个由大小写字母和空格字符 ' ' 组成的字符串 s,返回字符串中最后一个单词的长度。

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

注意: 单词的定义是由非空格字符组成的字符序列。

例如,
给的 s = "Hello World"
则返回 5

思路

看到代码只有一行的我竟无言以对 (╯°Д°)╯。

好吧我还是讲讲它的思路:

① 用 s.trim() 方法去掉了首位的空格

② 用.length()获取总长度,用 lastIndexOf(" ") 获取最后一个 " " 的index

③ 简单小学生计算得到字符串长度

代码

代码取自 Top Solution,稍作注释

    public int lengthOfLastWord(String s) {
         return s.trim().length()-s.trim().lastIndexOf(" ")-1;
    }

补充

关于 s.trim() 方法,网上有人反编译了 String 类找到这个方法看了,我给个链接,我也不知道对不对,据说这个方法不仅删首位空格符还删换行符等25种..
http://blog.csdn.net/muyu114/article/details/5734295

哈但是!这题里面就是相当于删首位空格符(中间不删),例如:

" 123 23 34 123 ".trim() = "123 23 34 123"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容