コンテンツにスキップ

00 文字列の逆順

問題

文字列”stressed”の文字を逆に(末尾から先頭に向かって)並べた文字列を得よ.

スライスの使い方

s[start:stop:step]

  • start: 始めの位置(省略すると最初から)
  • stop: 終わりの位置(省略すると最後まで)
  • step: 文字の間隔(省略すると1文字ずつ。負の数を入れると逆順)

スライスの例

s = "0123456789"
print(s[0:3]) # 0文字目から3文字目まで => 012
print(s[::2]) # 最初から最後まで1文字飛ばし => 02468
print(s[1:7:2]) # 1文字目から7文字目まで1文字飛ばし => 13579
print(s[::-1]) # 最初から最後まで逆順 => 9876543210
print(s[3::-1]) # 3文字目から最初まで逆順 => 3210

stepに -1 を指定したときは、start/stopも逆順になるので注意。

回答例

ここをクリックして回答を見る
s = "stressed"
print(s[::-1]) # スライスを使って、文字列を逆順にする

別解

組み込み関数 reversedfor文 と組み合わせることで、文字列を1文字ずつ取り出すことができる。

s = "stressed"
result = "" # 逆順にした文字を保存する文字列
for c in reversed(s):
result += c # 逆順に取り出した文字を、連結していく
print(result)