58. Length of Last Word
Given a string s consisting of words and spaces, return the length of the last word in the string.
A word is a maximal substring consisting of non-space characters only.
Example 1:
Input: s = "Hello World"
Output: 5
Explanation: The last word is "World" with length 5.
Example 2:
Input: num = 58s = " fly me to the moon "
Output: 4
Explanation: The last word is "moon" with length 4.
Example 3:
Input: s = "luffy is still joyboy"
Output: 6
Explanation: The last word is "joyboy" with length 6.
Constraints:
- 1 < = s . l e n g t h < = 1 0 4 1 <= s.length <= 10^4 1<=s.length<=104
- s consists of only English letters and spaces ' '.
- There will be at least one word in s.
From: LeetCode
Link: 58. Length of Last Word
Solution:
Ideas:
First determine the length of the string, and then set the flag "sign" to judge the end of the word, and start to loop through the last digit of the string array, and skip it directly when the beginning is a space. Count when a character is encountered, and set the judgment flag "sign" to 1. When a space is encountered again and the judgment flag "sign" is 1, the word ends, jump out of the loop, and return the length "length".
Code:
c
int lengthOfLastWord(char * s){
int len = strlen(s);
int sign = 0;
int length = 0;
for(int i = len - 1; i >= 0; i--){
if(s[i] == ' ' && sign == 0){
continue;
}
if(s[i] != ' '){
sign = 1;
length++;
}
else if(sign == 1){
break;
}
}
return length;
}