Given a string s consists of upper/lower-case alphabets and empty space characters ' '
, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example,
Given s = "Hello World"
,
return 5
.
这道题让找最后一个单词的长度,所以我们采用双指针大发,第一个指针寻找最后一个单词出现的最后一个字母,第二个指针寻找最后一个单词出现的第一个字母的前面,两个指针一减就得到长度值了。
public int lengthOfLastWord(String s) {
if (s == null || s.length() == 0)
return 0;
int index1 = s.length() - 1;
while (index1 >= 0 && s.charAt(index1) == ' ')
index1--;
int index2 = index1;
while (index2 >= 0 && s.charAt(index2) != ' ')
index2--;
return index1 - index2;
}
如果这道题是让找第一个单词的长度呢?
大家可以思考一下,思路几乎一样
public static int lengthOfFirstWord(String s) {
if (s == null || s.length() == 0)
return 0;
int index1 = 0;
while (index1 < s.length() && s.charAt(index1) == ' ')
index1++;
int index2 = index1;
while (index2 < s.length() && s.charAt(index2) != ' ')
index2++;
return index2 - index1;
}