151. Reverse Words in a String
split() と join() を使えば楽に解けそうと当たりをつけて書いてみたが、出力が None になった。
class Solution:
def reverseWords(self, s: str) -> str:
word = s.split()
word[::-1]
''.join(word)
原因は3つ:
word[::-1] は逆順にした新しいリストを作るだけで、代入しないと結果が捨てられる
''.join(word) だと単語同士がスペースなしでくっついてしまう(' '.join が正解)
return を書いていないので、関数は最後まで実行されても自動的に None を返す
修正版がこちら:
class Solution:
def reverseWords(self, s: str) -> str:
word = s.split()
word = word[::-1]
return ' '.join(word)
split() は引数なしで呼ぶと、連続する複数スペースや先頭・末尾の余分なスペースも自動で無視してくれるのがポイント。" hello world ".split() → ['hello', 'world'] になるので、今回のケース("a good example" みたいな複数スペース)でも特別な処理をせずに対応できた。