- LeetCode 58题 最后一个单词的长度
- 链接:https://leetcode-cn.com/problems/length-of-last-word/submissions/
- 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
- 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
- 执行用时0ms,使用内存36.3MB
思路:定义一个指向字符串后面的指针,和两个作为标志的变量(一个标志是否出现了第一个字符不是空格的,另一个标志表示在出现了第一个字符的情况下出现了一次空格就是最后一个字符)然后统计出现第一个字符后指针移动的次数,作为最终返回值,从后往前扫描;
代码:
class Solution {
public int lengthOfLastWord(String s) {
boolean first = false;//是否出现第一个字符
boolean isAppearSpace = false;//是否在第一次出现了字符后出现了一个空格
int count=0;//指针移动次数
int rear = s.length()-1;
while(!isAppearSpace&&rear>=0)
{
if(s.charAt(rear)=='\0'||Character.isSpace(s.charAt(rear)))
{
rear--;
//如果在第一次出现字符为真的情况下出现一个空格说明出现了一个单词
if(first)
{
isAppearSpace = true;
}
}
else{
count++;
first=true;
rear--;
}
}
return count;
}
}