始める無料で始める

文字列をシフトする

与えられた文字列に対して、指定したシフト量 shift だけ位置をずらした文字の並びを順に生成するジェネレーターを作成します。例えば、文字列 'sushi' を右に2文字シフト(shift = 2)すると、生成される並びは 'h', 'i', 's', 'u', 's' になります。左に2文字シフト(shift = -2)すると、生成される並びは 's', 'h', 'i', 's', 'u' になります。

ヒント: 有効なインデックス内を循環させるには % 演算子を使います。正または負の数に適用しても、非負の余りが得られるため、インデックスをシフトするときに役立ちます。

例えば、6 文字からなる文字列を保持する変数 string = 'python' を考えます。

  • 2 % 6 = 2(したがって、string[2 % 6]t
  • 0 % 6 = 0(したがって、string[0 % 6]p
  • -2 % 6 = 4(したがって、string[-2 % 6]o

この演習はコースの一部です

Pythonでコーディング面接問題を練習する

コースを見る

演習の手順

  • 提供された len_string 変数を使って、文字列のインデックスをループします。
  • シフトを行ったとき、そのインデックスに対応する文字を求めます。
  • 文字列 'DataCamp' を右に3文字シフトする(つまり "ampDataC")ジェネレーターを作成します。
  • ジェネレーターから新しい文字列を作成し、出力します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

def shift_string(string, shift):
    len_string = len(string)
    # Loop over the indices of a string
    for idx in ____:
        # Find which character will correspond to the index.
        ____ ____[____]
       
# Create a generator
gen = ____

# Create a new string using the generator and print it out
string_shifted = ''.____
print(string_shifted)
コードを編集して実行