leetcode

どーも!

たかぽんです!

今回もやっていきます!

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.
おすすめの記事