00 文字列の逆順
問題
文字列”stressed”の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ.
スライスの使い方
s[start:stop:step]
- start: 始めの位置(省略すると最初から)
- stop: 終わりの位置(省略すると最後まで)
- step: 文字の間隔(省略すると1文字ずつ。負の数を入れると逆順)
スライスの例
s = "0123456789"
print(s[0:3]) # 0文字目から3文字目まで => 012print(s[::2]) # 最初から最後まで1文字飛ばし => 02468print(s[1:7:2]) # 1文字目から7文字目まで1文字飛ばし => 13579print(s[::-1]) # 最初から最後まで逆順 => 9876543210print(s[3::-1]) # 3文字目から最初まで逆順 => 3210
stepに -1 を指定したときは、start/stopも逆順になるので注意。
回答例
ここをクリックして回答を見る
s = "stressed"print(s[::-1]) # スライスを使って、文字列を逆順にする
別解
組み込み関数 reversed と for文 と組み合わせることで、文字列を1文字ずつ取り出すことができる。
s = "stressed"result = "" # 逆順にした文字を保存する文字列
for c in reversed(s): result += c # 逆順に取り出した文字を、連結していく
print(result)