1. 全体的なプロセス
n 個の文字列を再帰的に反転する機能を実装するには、次の手順に従います。
ステップ | アクション |
1 | 再帰関数を定義する |
2 | 再帰の終了条件を決定する |
3 | 再帰関数を処理するための基本的なケース |
4 | 再帰関数を呼び出して部分問題を再帰的に処理します |
5 | 再帰的な結果を返す |
各ステップを詳しく説明し、対応するコード例を示します。
2. ステップ固有の操作
2.1 再帰関数の定義
まず、文字列反転の関数を実装するために再帰関数を定義する必要があります。これは、次のコードを使用して定義できます。
def reverse_string(s):
# 递归函数的定义
pass
2.2 再帰の終了条件を決定する
再帰関数では、再帰の終了条件を決定する必要があります。文字列の反転の問題については、文字列の長さが 1 の場合は反転操作を行う必要はなく、そのまま返すことができます。次のコードを使用して、終了条件を決定できます。
def reverse_string(s):
if len(s) == 1:
return s
2.3 再帰関数の基本的なケースの処理
再帰が終了していない場合は、再帰関数の基本的なケースを処理する必要があります。つまり、問題をより小さなサブ問題に分解し、それ自体を再帰的に呼び出してサブ問題を処理します。文字列の反転の問題では、文字列を最初の文字と残りの文字の 2 つの部分に分割し、残りの文字を反転して最初の文字を最後に置くことができます。次のコードを使用して、基本的なケースを処理できます。
def reverse_string(s):
if len(s) == 1:
return s
else:
return reverse_string(s[1:]) + s[0]
2.4 再帰関数を呼び出してサブ問題を再帰的に処理する
再帰関数の基本的な状況が処理された後、再帰関数を呼び出してサブ問題を処理する必要があります。 。文字列の反転の問題では、残りの文字を反転して最初の文字を最後に置くことができます。再帰関数は、次のコードを使用して呼び出すことができます。
def reverse_string(s):
if len(s) == 1:
return s
else:
return reverse_string(s[1:]) + s[0]
def reverse_n_strings(strings):
reversed_strings = []
for s in strings:
reversed_strings.append(reverse_string(s))
return reversed_strings
2.5 再帰的な結果を返す
最後に、再帰的な結果を返す必要があります。文字列の反転の問題については、反転した文字列をリストに格納し、そのリストを返すことができます。次のコードを使用すると、再帰的な結果を返すことができます。
def reverse_string(s):
if len(s) == 1:
return s
else:
return reverse_string(s[1:]) + s[0]
def reverse_n_strings(strings):
reversed_strings = []
for s in strings:
reversed_strings.append(reverse_string(s))
return reversed_strings
3. コード例
完全なコード例は次のとおりです。
def reverse_string(s):
if len(s) == 1:
return s
else:
return reverse_string(s[1:]) + s[0]
def reverse_n_strings(strings):
reversed_strings = []
for s in strings:
reversed_strings.append(reverse_string(s))
return reversed_strings
strings = ["hello", "world", "python"]
reversed_strings = reverse_n_strings(strings)
print(reversed_strings)
上記のコードを実行すると、反転された文字列リストが出力されます。
[「オレ」、「ドロー」、「ノータイプ」]