まず、再帰関数を使用して文字列内の「pi」を置換する方法を説明します。以下はPythonの例ですが、他のプログラミング言語でも同様のアイデアを応用できます。
def replace_pi(string):
if len(string) <= 1:
return string
if string[:2] == "pi":
return "3.14" + replace_pi(string[2:])
else:
return string[0] + replace_pi(string[1:])
# 使用例
input_string = "apple pie is delicious"
output_string = replace_pi(input_string)
print(output_string)
上記のコードでは、再帰関数 replace_pi
を定義しています。関数は与えられた文字列 string
を受け取り、次の手順で処理を行います。
- 文字列の長さが1以下の場合、文字列をそのまま返します(再帰の終了条件)。
- 文字列の先頭2文字が「pi」である場合、それを「3.14」に置換して残りの文字列に対して再帰呼び出しを行います。
- 上記のいずれの条件にも該当しない場合、文字列の先頭文字をそのまま返し、残りの文字列に対して再帰呼び出しを行います。
このアプローチにより、「apple pie is delicious」は「apple 3.14e is delicious」という文字列に置換されます。
正規表現を使用する場合:
import re
def replace_pi_regex(string):
return re.sub(r'pi', '3.14', string)
# 使用例
input_string = "apple pie is delicious"
output_string = replace_pi_regex(input_string)
print(output_string)
インデックスを操作する場合:
def replace_pi_index(string):
result = ""
index = 0
while index < len(string):
if index + 1 < len(string) and string[index:index+2] == "pi":
result += "3.14"
index += 2
else:
result += string[index]
index += 1
return result
# 使用例
input_string = "apple pie is delicious"
output_string = replace_pi_index(input_string)
print(output_string)
これらのコード例を使って、「pi」の出現箇所を置換する方法を理解していただけると幸いです。再帰関数を使用した最初のアプローチは、再帰的なアルゴリズムの基本的な例としても役立ちます。