58. 最后一个单词的长度

70 阅读1分钟

最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

这个题目很简单,当然我就用我所了解的知识,轻轻松松就做出来了。这个题目主要就是判断最后一个单词的长度,而且给定的字符串只包含有字母和空格组成的,这就可以扩展到了给定字符串判断含有多少个单词组成,我觉得这就可以进行缩小了。 因此在我的想法里面有两种方法:

方法1
 public int lengthOfLastWord(String s) {
      String[] arr = s.split(" ");
      return arr[arr.length - 1].length();
    }
方法2
public int lengthOfLastWord(String s) {
        int count = 0;
        Boolean start = false;
        for (int i = s.length() - 1; i >= 0; i--) {
            if (s.charAt(i) != ' ') {
                start = true;
                count++;
            }
            if (s.charAt(i) == ' '&& start) {
                break;
            }
        }
        return count;
    }

官方给的解答就是反向遍历的方式去做的 考虑到了最后一个是空格的情况;

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;
    }
}