一、题目
二、解题思路
1、我的思路
先将字符串转换成字符数组
由于我们需要获取最后一个单词的长度,所以我们从后往前遍历字符数组
我们还需判断所遍历的字符是不是字母,即判断每个字符对应的ASCII值即可,用计数器count来储存单词长度
当遍历到第一个字母时,将flag的值从flase置为true,之后的循环中,若遍历到字母,则count++,若遍历到的字符不是字母,则直接结束循环,返回count
char[] cs = s.toCharArray();
int i = cs.length - 1;
int count = 0;
boolean flag = false;
while (i>=0) {
if ((cs[i] >= 65 && cs[i] <= 90) || (cs[i] >= 97 && cs[i] <= 122)) {
count++;
flag = true;
}else{
if(flag){
break;
}
}
i--;
}
return count;
2、官方题解
官方题解采用的也是反向遍历的操作,和我的思路是一样的,只是代码稍有不同
class Solution {
public int lengthOfLastWord(String s) {
int index = s.length() - 1;
while (s.charAt(index) == ' ') {
index--;
}
int wordLength = 0;
while (index >= 0 && s.charAt(index) != ' ') {
wordLength++;
index--;
}
return wordLength;
}
}
作者:力扣官方题解
链接:https://leetcode.cn/problems/length-of-last-word/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。