Bu, ilk defa stackoverflow hakkında bir soru sormak. İnternette biraz arama yaptım ama ne istediğimi bulamadım. Benim sorum python kullanarak bir listede ardışık tekrarlanan sayıların (veya genel olarak öğelerin) maksimum uzunluğunu bulmaktır. İyi çalışan işlevi yazdım ama bunu yapmanın veya kodumu geliştirmenin daha iyi bir yolu olup olmadığını merak ediyordum. Çok teşekkürler! Aşağıdaki ortalama maksimum uzunluğu ileBir listede art arda tekrarlanan sayıların uzunluğunu bulabilirsiniz (python)
def longest(roll):
'''Return the maximum length of consecutive repeated elements in a list.'''
i = 0
M = 0 # The maximum length
while 0 <= i < len(roll):
c = 1 # Temporarily record the length of consecutive elements
for j in range(i+1, len(roll)):
if roll[j] != roll[i]:
i = j
break
c += 1
i += 1
if c > M:
M = c
if i == len(roll) - 1:
break
return M
:
[1, 1, 2, 2, 2, 4], M = 3 (2 3 kez tekrar);
[1, 2, 1, 2, 1], M = 1 (1 ve 2 sadece bir kez tekrarlanır).
Teşekkürler! Çok güzel kod. Düz python kodu (itertools gibi araçlar kullanmadan) kullanarak bunu yapmanın bir yolu olup olmadığını da merak ediyordum. Çok basit bir soru gibi görünüyor, ama kolay bir şekilde anlayamadım. Orijinal kodumu geliştirmek mümkün mü? Teşekkürler! –
Size birazdan geri döneceğim. Başımın üst kısmından, kodunuzun mantığı sağlamdır, diğer iyileştirmeler en iyi ihtimalle önemsizdir. Ama bana bir çatlaksın. :) – Manhattan