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

Pythonで指定された2つの文字列の間にある辞書式順序で文字列を検索します


2つの文字列SとTがあるとすると、辞書式順序でSより大きくTより小さい同じ長さの文字列かどうかを確認する必要があります。そのような文字列がない場合は、-1を返す必要があります。 S =S1S2…Snは、辞書式順序でT =T1T2…Tnよりも小さいと呼ばれることに注意する必要があります。ただし、iが存在する場合、S1 =T1、S2 =T2、…Si – 1 =Ti – 1 Si

したがって、入力がS="bbb"およびT="ddd"の場合、出力は "bbc"

になります。

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

  • n:=文字列のサイズ
  • n-1から0の範囲のiの場合、1ずつ減らします。
    • string[i]が'z'と同じでない場合、
      • k:=(string [i])のASCII
      • string [i]:=ASCIIからの文字(k + 1)
      • 文字列文字を結合して返す
    • string [i]:='a'

理解を深めるために、次の実装を見てみましょう-

def find_next(string):
   n = len(string)
   for i in range(n - 1, -1, -1):
      if string[i] != 'z':
         k = ord(string[i])
         string[i] = chr(k + 1)
         return ''.join(string)
      string[i] = 'a'
S = "bbb"
T = "ddd"
S = list(S)
res = find_next(S)
if res != T:
   print(res)
else:
   print(-1)

入力

"bbb", "ddd"

出力

bbc

  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で2つの文字列を結合して1つの文字列に変換するにはどうすればよいですか?

    Pythonで2つの文字列を結合するには、連結演算子+を使用できます。例: str1 = "Hello" str2 = "World" str3 = str1 + str2 print str3 これにより、出力が得られます: HelloWorld str.join(seq)を使用して、複数の文字列を結合することもできます。例: s = "-"; seq = ("a", "b", "c"); # This is sequence of strings. print s.j