58.Length of Last Word:修订间差异
创建页面,内容为“=Description= {{LeetCode |id=length-of-last-word |no=58 |difficulty=Easy |category=String |collection=Top 150 |title=Length of Last Word |summary=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: <syntaxhighlight lang="bash"> Input: s = "Hello World" Output: 5 </syntaxhighlight> Explanation: The last word is "World" with length…” |
|||
第33行: | 第33行: | ||
Explanation: The last word is "joyboy" with length 6. | Explanation: The last word is "joyboy" with length 6. | ||
== Two-pointers== | == Two-pointers== | ||
{{Submission|runtime=0ms|memory=41.34MB|rp=100|mp= | {{Submission|runtime=0ms|memory=41.34MB|rp=100|mp=95}} | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
第47行: | 第47行: | ||
} | } | ||
return right - left; | return right - left; | ||
} | |||
} | |||
</syntaxhighlight> | |||
== State machine== | |||
{{Submission|runtime=0ms|memory=41.26MB|rp=100|mp=95.49}} | |||
<syntaxhighlight lang="java"> | |||
class Solution { | |||
enum State { | |||
EMPTY, | |||
STRING, | |||
END | |||
} | |||
public int lengthOfLastWord(String s) { | |||
State state = State.EMPTY; | |||
int length = 0; | |||
for(int i = s.length() -1; i >= 0; i--) { | |||
switch(state) { | |||
case State.EMPTY: { | |||
if(s.charAt(i) == ' ') break; | |||
else { | |||
state = State.STRING; | |||
length ++; | |||
break; | |||
} | |||
} | |||
case State.STRING: { | |||
if(s.charAt(i) != ' ') { | |||
length ++; | |||
break; | |||
} else { | |||
state = State.END; | |||
break; | |||
} | |||
} | |||
case State.END: return length; | |||
default: break; | |||
} | |||
} | |||
return length; | |||
} | } | ||
} | } |
2024年2月19日 (一) 14:45的最新版本
Description
#58 | Length of Last Word | Easy | ||
---|---|---|---|---|
String | Top 150 | |||
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: s = " 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.
Two-pointers
Runtime 0ms |
|
Memory 41.34MB |
|
class Solution {
public int lengthOfLastWord(String s) {
int right = s.length() -1;
while(s.charAt(right) == ' ' && right > 0) {
right --;
}
int left = right;
while(left >= 0 && s.charAt(left) != ' ') {
left --;
}
return right - left;
}
}
State machine
Runtime 0ms |
|
Memory 41.26MB |
|
class Solution {
enum State {
EMPTY,
STRING,
END
}
public int lengthOfLastWord(String s) {
State state = State.EMPTY;
int length = 0;
for(int i = s.length() -1; i >= 0; i--) {
switch(state) {
case State.EMPTY: {
if(s.charAt(i) == ' ') break;
else {
state = State.STRING;
length ++;
break;
}
}
case State.STRING: {
if(s.charAt(i) != ' ') {
length ++;
break;
} else {
state = State.END;
break;
}
}
case State.END: return length;
default: break;
}
}
return length;
}
}