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

PythonでOrderedDict()を使用して、文字列内の文字の順序を確認します


文字列内の文字の順序を確認する必要がある場合は、「OrderedDict」メソッドを使用できます。

以下は同じのデモンストレーションです-

from collections import OrderedDict
def check_order(my_input, my_pattern):
   my_dict = OrderedDict.fromkeys(my_input)
   pattern_length = 0
   for key,value in my_dict.items():
      if (key == my_pattern[pattern_length]):
         pattern_length = pattern_length + 1

      if (pattern_length == (len(my_pattern))):
         return 'The order of pattern is correct'

   return 'The order of pattern is incorrect'

my_input = 'Hi Mark'
input_pattern = 'Ma'
print("The string is ")
print(my_input)
print("The input pattern is ")
print(input_pattern)
print(check_order(my_input,input_pattern))

出力

The string is
Hi Mark
The input pattern is
Ma
The order of pattern is correct

説明

  • 必要なパッケージがインポートされます。

  • 「check_order」という名前のメソッドが定義されており、2つのパラメーターを取ります。

  • 順序付けられた辞書は、「fromkeys」メソッドを使用して作成されます。

  • パターンの長さは0に初期化されます。

  • キーがパターンと等しい場合、パターンの長さが増加します。

  • パターンの長さが現在の長さと同じである場合、それは順序が正しいことを意味し、そうでない場合は順序が間違っています。

  • 関連するメッセージがコンソールに出力として表示されます。


  1. PythonでDFAを使用して、バイナリ文字列が3の倍数であるかどうかを確認します

    任意の数のバイナリ表現を表す配列nがあるとします。 Deterministic Finite Automata DFAを使用して、そのバイナリ表現が3で割り切れるかどうかを確認する必要があります。 したがって、入力がn =[1、1、0、0](12のバイナリ)のような場合、出力はTrueになります。 これを解決するために、以下のようにDFAを構築できます- 数値が3で割り切れる場合、余りは0になり、そうでない場合、余りは1または2になります。これらの3つの余りには、3つの状態があります。余りが0の場合、数値が除算可能であることを意味するため、初期状態も最終状態です。 これを解決する

  2. Pythonで文字列に空白文字のみが含まれているかどうかを確認するにはどうすればよいですか?

    2つの方法を使用して、文字列に空白文字のみが含まれているかどうかを確認できます。 1つは、メソッドisspace()を使用することです。例: