1.問題の説明:
大文字と小文字およびスペースのみを含む文字列sが与えられた場合、 ''最後の単語の長さを返します。文字列が左から右にスクロールする場合、最後の単語は表示される最後の単語です。
最後の単語が存在しない場合は、0を返します。
注:単語とは、文字のみで構成され、スペース文字を含まない最大の部分文字列を指します。
例:
入力:「Hello World」
出力:5
ソース:LeetCode
リンク:https ://leetcode-cn.com/problems/length-of-last-word
2.思考分析:
①実は比較的単純な考え方ですが、タイトルからわかるように、文字列には大文字と小文字とスペースしか含まれていないため、java apiを直接使用して解決できます。splitメソッドを使用すると、javaで文字列を分割できます。 、最後の要素の長さが結果です
②入力文字列の特殊な状況に注意を払い、簡単な判断をする必要がある
3.コードは次のとおりです。
直接記述:
class Solution {
public static int lengthOfLastWord(String s) {
if(s.equals("")) return 0;
String str[] = s.split(" ");
if(str.length == 0) return 0;
return str[str.length - 1].length();
}
}
首輪のバックルのソリューションにあるコードは非常に優れています。これは、文字列の後ろから始めて、最初にスペースを削除してから、最後の単語を探すことしかできません。コードは次のとおりです。
class Solution {
public int lengthOfLastWord(String s) {
int end = s.length() - 1;
while(end >= 0 && s.charAt(end) == ' ') end--;
if(end < 0) return 0;
int start = end;
while(start >= 0 && s.charAt(start) != ' ') start--;
return end - start;
}
}