0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LeetCode Problems解いた:58. Length of Last Word

Posted at

LeetCodeの問題集、58. Length of Last Wordがacceptされたので、備忘録として。

概要

アルファベットとスペースのみで構成された文章に対して、最後の単語(ないし文字列)を抜き出す問題。

コード

今回はPythonでの記述。

コード全容
Solution.py
class Solution(object):
    def lengthOfLastWord(self, s):
        result = s.split()[len(s.split()) - 2] if s.split()[len(s.split()) - 1] == "" else  s.split()[len(s.split()) - 1]
        return(len(result))

考え方

pythonのsplit関数は、引数無しでタブ、改行、(連続する)スペースを区切り文字として分割してくれるので、文字列を分割して、一番最後の要素の長さを取得する。

文字列の最後がスペースだった場合分割後の配列の最後の要素が""になるので、その場合は最後から2番目の要素の長さを取得する。

処理の詳細フロー (例)s="we␣have␣two␣␣␣dogs␣␣␣␣" s.split() → ["we","have","two","dogs",""]
s.split()[-1] == "" がTrue → 対照はs.split()[-2] → result="dogs"
len(result)=4

自分の結果

計算速度:上から数えて約45%のところ(真ん中らへん)
メモリ使用量:上から数えて25%ぐらいのところ(ちょっと上の方)
普通ぐらい。

備考

splitを使ってはずるいような気がするのだが、どうなのだろうか。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?