2016-08-30 8 views
-1

空の文字列を考慮して、Pythonの1と0の文字列で最も長く繰り返される1の長さを見つける方法を知りました。 '1011110111111'6を返し、''0を返します。文字列内の最も長い繰り返し1の長さを見つける

過去の記事は、正規表現を使用して

max([len(i) for i in re.compile('(1+1)').findall(count)])

を示唆したが、それは1つの1のためのケースと空の文字列をカウントしません。

+1

を。あなたが行った試みを示してください。 –

答えて

6

ちょうどセパレータとして「0」を使用して文字列を分割して、リスト内の最長のアイテムを見つける:これは、ループカウンタを行うのは非常に簡単です

s = '1011110111111' 
result = len(max(s.split('0'))) 
+0

Anaconda3ディストリビューションのWindows 10のPython 3.5.2では、空の文字列に '0'が返されます。どのバージョンのPythonを使用していますか? –

+0

興味深い。それを考えずに、大文字では 'max(map(len、s.split( '0')))'の方がはるかに高速だと思っていましたが、試した文字列であれば 's.split 0 ') 'とにかくほとんどの時間がかかりました。しかし、どちらのソリューションもO(len(s))だと思います。 –

関連する問題