这是我参与8月更文挑战的第18天,活动详情查看:8月更文挑战
相关文章
LeetCode刷题汇总:LeetCode刷题
一、题目描述
给你一个字符串
s
,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
从简单题目开始刷,锻炼自己的思维能力,为面试准备~
二、思路分析
-
看看题目的示例,我们来理一理这个思路~
-
示例 1:
输入:s = "Hello World" 输出:5
-
示例2:
输入:s = " fly me to the moon " 输出:4
-
示例3:
-
输入:s = "luffy is still joyboy" 输出:6
- 题目要求我们找到最后一个字符串,如何找到最后一个字符串呢?
- 因为传入的字符串都是用空格来分开的,所以是有迹可寻的。
- 可以使用split来根据空格来分割成字符数组,那么该数组的最后一个就是最后一个字符串了。
三、AC 代码
-
字符串分割解法:
class Solution { public int lengthOfLastWord(String s) { //将其分割为字符串数组 String[] arr = s.split(" "); //返回数组长度-1的那个数据的长度即是最后一个字符串的长度 return arr[arr.length-1].length(); } }
- 这种解法简单粗暴,毫无美观性可言。
-
倒序循环解法法:
class Solution { public int lengthOfLastWord(String s) { int count = 0; //先去除头尾的空格 s = s.trim(); for (int i=s.length()-1;i>=0;i--){ //如果遇到的不是空格,即+1,是空格的话证明最后一个单词已经遍历完成 if(s.charAt(i) == ' '){ break; }else { count++; } } return count; } }
- 从结果可以看出,明显比原先的效率高了很多!
- 这种思路就是循环,循环yyds!!!
四、总结
- 解题思路千千万,不管是本办法还好,还是奇思妙想的解法,能解决就是好办法!白猫黑猫能抓老鼠的猫就是好猫!
- 这种简单的题目解法有千千万万,选择最适合你的即可!下面列举下其他大神的解法,提供参考!
- 点击跳转:画解算法
- 其实我真的蛮喜欢我的第一种解法的,虽然效率有点底下,但是好歹完美利用java的方法呀!活学活用!哈哈
**路漫漫其修远兮,吾必将上下求索~ **如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah