Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの2つの文字列から字句的に最小の文字列を作成するプログラム


2つの文字列があるとします。これらの文字列から字句的に最小の文字列を作成したいと思います。文字列を作成するには、2つの文字列の最初の文字を比較し、文字列の1つから字句的に小さい文字を抽出します。同点の場合、つまり文字は同じです。最初の文字列から文字を抽出します。両方の文字列が空になるまで、このプロセスを繰り返します。構築された最小の文字列を返す必要があります。

したがって、入力がinput_1 ='チュートリアル'、input_2 ='POINT'のようである場合、出力はPOINTtokyoS

になります。

2つの文字列を比較すると、このステップバイステップが得られます-

TUTORIALS POINT
TUTORIALS OINT = P
TUTORIALS INT = PO
TUTORIALS NT = POI
TUTORIALS T = POIN
TUTORIALS = POINT

文字列の1つが空であるため、最初の文字列全体が結果の最小文字列に配置されます。したがって、最後の文字列はPOINTtokyoSです。

これを解決するには、次の手順に従います-

  • input_1:=input_1 + "z"
  • input_2:=input_2 + "z"
  • temp_1:=0
  • temp_2:=0
  • res_str:=空白の文字列
  • temp_1
  • ifinput_1[インデックスtemp_1から文字列の終わりまで]
  • res_str:=res_str + input_1 [temp_1]
  • temp_1:=temp_1 + 1
  • それ以外の場合、
    • res_str:=res_str + input_2 [temp_2]
    • temp_2:=temp_2 + 1
  • res_str:=res_str[インデックス0から文字列の最後から2番目の要素まで]
  • temp_1 <(input_1)の長さの場合、
    • res_str:=res_str +input_1[インデックスtemp_1から文字列の最後から2番目の要素まで]
  • temp_2 <(input_2)の長さの場合、
    • res_str:=res_str +input_2[インデックスtemp_2から文字列の最後から2番目の要素まで]
  • res_strを返す
  • 理解を深めるために、次の実装を見てみましょう-

    def solve(input_1, input_2):
       input_1 += "z"
       input_2 += "z"
       temp_1 = 0
       temp_2 = 0
       res_str = ""
       while temp_1 < len(input_1) and temp_2 < len(input_2):
          if input_1[temp_1:] < input_2[temp_2:]:
             res_str += input_1[temp_1]
             temp_1 += 1
          else:
             res_str += input_2[temp_2]
             temp_2 += 1
       res_str = res_str[:-1]
       if temp_1 < len(input_1):
          res_str += input_1[temp_1:-1]
       if temp_2 < len(input_2):
          res_str += input_2[temp_2:-1]
       return res_str
    
    print(solve('TUTORIALS', 'POINT'))

    入力

    'TUTORIALS', 'POINT'

    出力

    POINTTUTORIALS
    

    1. 2つの文字列から珍しい単語を見つけるPythonプログラム

      この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの文字列が与えられているので、与えられた文字列から珍しい単語を取得する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # uncommon words def find(A, B):    # count    count = {}    # insert in A    for word in A.split():       count[word] = coun

    2. Pythonプログラムで文字列からn番目の文字を削除する

      この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 文字列が与えられたので、与えられた文字列からi番目のインデックス付き文字を削除して表示する必要があります。 Pythonのどの文字列でも、インデックス付けは常に0から始まります。文字列「tutorialspoint」があるとすると、そのインデックス付けは次のように行われます- T u t o r i a l s p o i n t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 次に、ステートメントを解決するためのPythonスクリプトgを見てみましょう- 例 def remove(str