สมมติว่าเรามีสตริง s เราต้องหาความยาวของสตริงย่อยที่ยาวที่สุดด้วยอักขระเดียวกัน
ดังนั้น หากอินพุตเป็นเหมือน "abbbaccabbbba" ผลลัพธ์จะเป็น 4 เนื่องจากมีสี่ตัวต่อเนื่องกัน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้าขนาดของ s เป็น 0 แล้ว
- คืน 0
- s :=s เชื่อมช่องว่าง
- ct:=1, tem:=1
- สำหรับฉันในช่วง 0 ถึงขนาด s -2 ทำ
- ถ้า s[i] เหมือนกับ s[i+1] แล้ว
- tem :=tem + 1
- มิฉะนั้น
- ct:=สูงสุด tem และ ct
- tem:=1
- ถ้า s[i] เหมือนกับ s[i+1] แล้ว
- คืนสินค้า
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution:
def solve(self, s):
if len(s)==0:
return 0
s+=' '
ct=1
tem=1
for i in range(len(s)-1):
if s[i]==s[i+1]:
tem+=1
else:
ct=max(tem,ct)
tem=1
return ct
ob = Solution()
print(ob.solve("abbbaccabbbba")) อินพุต
"abbbaccabbbba"
ผลลัพธ์
4