最后一个单词的长度
给你一个字符串 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;
}
}