Pythonでの2つの文字列の最大のマージ
2つの文字列「a」と「b」および文字列「merge」があると仮定します。タスクは、文字列「merge」に「a」と「b」の文字を次のように入力することです。
- 文字列'a'が空でない場合は、文字列'a'から最初の文字を削除し、文字列'merge'にコピーします。
- 文字列'b'が空でない場合は、文字列'b'から最初の文字を削除し、文字列'merge'にコピーします。
- 文字列'a'および'b'が空でない場合は、文字列'a'から最初の文字を削除し、それを文字列' merge'にコピーしてから、文字列'bから最初の文字(存在する場合)を削除します。 'そしてそれを文字列'merge'にコピーします。
- 辞書式順序で両方の文字列から文字を削除します。つまり、文字列'a'が文字列'b'より大きい場合は、文字列'a'から文字を削除してから文字列'b'を削除します。
- 文字列「merge」を返します。
例
入力-1:
a = “bacaa”
b = “abcaa”
出力:
babcacaaaa
説明:
指定された文字列「a」は辞書式順序で文字列「b」よりも大きいため、最初の文字を文字列「a」、つまり「b」から抽出し、次に文字列「b」から抽出します。抽出後、文字列は「babcacaaaa」になります。
この問題を解決するためのアプローチ
この問題を解決するための再帰的アプローチは、文字列'a'と文字列'b'の各文字を抽出し、文字列'a'の文字が他の文字列より辞書式に大きいかどうかをチェックし、最後に文字列'merge'に連結することです。 。
いくつかの位置の後に各文字の部分文字列を見つけ、辞書式順序で他の文字列よりも大きい場合は「マージ」に連結します。
- 2つの入力文字列「a」と「b」を取ります。
- 再帰文字列関数concatenateLargest(string a、string b)は、入力として2つの文字列を受け取り、連結後の最大の文字列、つまり(string'a' + string'b')を返します。
- 'a> b'の場合、文字列'a'を位置'0'で分割し、文字列'a'からの出力を返します。
- 'a
- 連結された文字列を返します。
例
def concatenateLargest(a, b): ans = "" while a and b: if a > b: ans = a[0] a = a[1:] else: ans = b[0] b = b[1:] ans = a ans = b return ans a = "bacaa" b = "abcaa" print(concatenateLargest(a, b))
上記のコードを実行すると、次のように出力が生成されます
出力
bacabcaaaa
「bacaa」と「abcaa」の2つの文字列は、指定された問題に従ってマージすると、「bacabcaaaa」になります。
-
2つの辞書をマージするPythonプログラム
このチュートリアルでは、 Pythonで2つの辞書を組み合わせる方法を学習します。 。 2つの辞書をマージするいくつかの方法を見てみましょう。 update()メソッド まず、辞書の組み込みメソッド update()を確認します。 マージします。 update() メソッドはなしを返します オブジェクトであり、2つの辞書を1つに結合します。プログラムを見てみましょう。 例 ## initializing the dictionaries fruits = {"apple": 2, "orange" : 3, "tangerine"
-
2つのPython辞書をどのようにマージできますか?
Python 3.5以降では、**演算子を使用して辞書を解凍し、次の構文を使用して複数の辞書を組み合わせることができます。 a = {'foo': 125} b = {'bar': "hello"} c = {**a, **b} print(c) これにより、出力が得られます: {'foo': 125, 'bar': 'hello'} これは古いバージョンではサポートされていません。ただし、次の同様の構文を使用して置き換えることができます。 a = {'foo': 125}