解決策:
この問題は、逆方向移動で解決されています。
両方のケースで、この問題を見ることを期待。
- 最後のものは言葉であります
- 最後の空間である
第一の場合には、長さの最後の単語の直接計算は、その後に戻り、
これはまた、2つの小さなケースに分割され、- 単語は、単語の前にある最後に、現在のエレメント・ポインタを終了する条件の最後の単語が空白であるか否かが判定されます。
- 最後の単語は、単語の前にないので-1の現在のポインタ位置の端こと。
後者の場合、空間フィルタリングする必要があり、その後、計算のために、文字列がスペースのみが、場合に、すべてのスペースは、-1の現在のポインタ位置を濾別し、0を直接戻すことができます。
コードは以下の通りであります:
class Solution:
def lengthOfLastWord(self, s):
right = len(s) - 1
while right >= 0:
if s[right] != ' ':
if right == 0:
return 1
count = 0
while s[right] != ' ' and right >= 0:
right -= 1
count += 1
return count
else:
while s[right] == ' ' and right >= 0:
right -= 1
if right == -1:
return 0
return 0
スクリーンショットの結果:IF右== 0: 。リターン1はループのための第1に要約されています
class Solution:
def lengthOfLastWord(self, s):
# if len(s) == 1 and s[0] != ' ':
# return 1
# elif len(s) == 1 and s[0] == ' ':
# return 0
right = len(s) - 1
while right >= 0:
if s[right] != ' ':
count = 0
while s[right] != ' ' and right >= 0:
right -= 1
count += 1
return count
else:
while s[right] == ' ' and right >= 0:
right -= 1
if right == -1:
return 0
return 0
第1フィルタリングスペースを計算して、単語
class Solution:
def lengthOfLastWord(self, s):
end = len(s) - 1
while (end >= 0 and s[end] == ' '):
end -= 1
if end == -1:
return 0
start = end
while start >= 0 and s[start] != ' ':
start -= 1
return end - start