สมมติว่ามีสตริง s เราต้องหาความยาวของสับสตริงที่ยาวที่สุดที่มีตัวอักษรเหมือนกันติดกัน
เช่น ถ้าอินพุตคือ "abbbaccabbbba" ผลลัพธ์จะเป็น 4 เนื่องจากมี b ติดกัน 4 ตัว
ขั้นตอนการแก้ปัญหา
- ถ้าขนาดของ s เป็น 0 คืนค่า 0
- s := s + ช่องว่าง
- ct := 1, tem := 1
- for i ในช่วง 0 ถึง len(s)-2
- ถ้า s[i] == s[i+1] tem := tem + 1
- มิฉะนั้น ct := max(tem, ct), tem := 1
- คืนค่า ct
ตัวอย่างโค้ด
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