どーも!
たかぽんです!
今回もやっていきます!
58. Length of Last Word
今回の問題はこちらです!
文章があったとして、一番最後の単語の文字数を返せ...というものになっています。
Input: s = "Hello World"
Output: 5
Input: s = " "
Output: 0
例を引用させてもらうと上記のような感じです。
前者は"World"がsの文章中の最後の単語です。
その場合, "World"は五文字なので、5を返します。
逆に、単語が存在しない場合は0になります。
また、"a "といった形で末尾にスペースがある場合、"a"が最後の単語となり、1を返すのが正しい答えになります。
アルゴリズム
アルゴリズムを考えます!
と言いたいところですが、アルゴリズムというのは烏滸がましい気がする...
一応、原理としてはスペースの部分で文字を区切り、そこから別の配列やリストに格納させていきます。
"Hello World"
List = ['Hello', 'World']
あとは、その末尾の要素の文字を一つづつみていって、長さを出してあげれば大丈夫です。(ただし、文字のあるなしだけでなく、スペースも考慮しないといけないですね)
pythonの場合、split()とすることで、スペースをのぞいた文字列区切りができるようなので、今回はそれを活用して解きました。
splitした結果、要素が存在する場合は末尾の要素の文字列の長さを返す...という、とても簡単な感じです。
いつか二週目やる際は...メソッド頼らず頑張る...と思います...!
提出したコード
class Solution:
def lengthOfLastWord(self, s: str) -> int:
if s.split():
return len(s.split()[-1])
return 0
## 結果
Runtime: 28 ms, faster than 83.42% of Python3 online submissions for Length of Last Word.
Memory Usage: 14.2 MB, less than 67.34% of Python3 online submissions for Length of Last Word.