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

Pythonで文字列にm個の連続した1または0があるかどうかを確認します


バイナリ文字列sと別の値mがあるとすると、文字列にm個の連続する1またはm個の連続する0があるかどうかを確認する必要があります。

したがって、入力がs ="1110111000111"、m =3の場合、3つの連続する0と1があるため、出力はTrueになります。

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

  • str_size:=sのサイズ
  • count_0:=0、count_1:=0
  • 0からstr_size-2の範囲のiの場合、do
    • s[i]が'0'と同じ場合、
      • count_1:=0
      • count_0:=count_0 + 1
    • それ以外の場合、
      • count_0:=0
      • count_1:=count_1 + 1
    • count_0がmと同じであるか、count_1がmと同じである場合、
      • Trueを返す
  • Falseを返す

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

def solve(s, m):
   str_size = len(s)
   count_0 = 0
   count_1 = 0
   for i in range(0, str_size - 1):
      if (s[i] == '0'):
         count_1 = 0
         count_0 += 1
      else :
         count_0 = 0
         count_1 += 1
      if (count_0 == m or count_1 == m):
         return True
   return False
s = "1110111000111"
m = 3
print(solve(s, m))

入力

"1110111000111", 3

出力

True

  1. Pythonで文字列に少なくとも1つの文字と1つの数字があるかどうかを確認するにはどうすればよいですか?

    Pythonでこれを確認する最も簡単な方法は、正規表現を使用することです。指定された文字列に少なくとも1つの文字と1つの数字があるかどうかを確認するために、re.match(regex、string)を使用します。 例 import re print(bool(re.match('^(?=.*[0-9]$)(?=.*[a-zA-Z])', 'hasAlphanum123'))) print(bool(re.match('^(?=.*[0-9])(?=.*[a-zA-Z]$)', 'some string'))) 出力 True F

  2. Pythonで文字列にアルファベットまたは数字が含まれているかどうかを確認するにはどうすればよいですか?

    Python Stringクラスには、文字列に対して呼び出すことができるisalnum()というメソッドがあり、文字列が英数字のみで構成されているかどうかを通知します。次の方法で呼び出すことができます: print( '123abc'.isalnum()) 出力 True print('123#$%abc'.isalnum()) 出力 False 同じ結果に正規表現を使用することもできます。アルファ数値を照合するには、正規表現 ^ [a-zA-Z0-9] + $を使用してre.match(regex、string)を呼び出すことができます。たとえば、 im