สมมติว่าเรามีสตริง 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