Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาความยาวสับสตริงที่มีตัวอักษรติดกันเหมือนกันใน Python

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