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

โปรแกรมหาจำนวนสตริงทั้งหมดที่มีตัวอักษรเดียวไม่ซ้ำใน Python

สมมติว่ามีสตริง s ของตัวพิมพ์เล็ก เราต้องหาจำนวนสับสตริงทั้งหมดที่มีตัวอักษรเดียวไม่ซ้ำ

เช่น ถ้าอินพุตคือ "xxyy" ผลลัพธ์จะเป็น 6 สับสตริงคือ [x, x, xx, y, y, yy]

ขั้นตอนการแก้ปัญหา

  • total := 0
  • previous := สตริงว่าง
  • สำหรับแต่ละตัวอักษร c ใน s
    • ถ้า c ไม่เท่ากับ previous previous := c, temp := 1
    • มิฉะนั้น temp := temp + 1
    • total := total + temp
  • คืนค่า total

ตัวอย่างโค้ด

class Solution:
    def solve(self, s):
        total = 0
        previous = ''
        for c in s:
            if c != previous:
                previous = c
                in_a_row = 1
            else:
                in_a_row += 1
            total += in_a_row
        return total

ob = Solution()
print(ob.solve("xxyy"))

อินพุต

"xxyy"

เอาต์พุต

6