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

โปรแกรมค้นหาจำนวนสตริงทั้งหมดที่มีอักขระที่ไม่ซ้ำกันหนึ่งตัวใน Python


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

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

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • รวม :=0
  • ก่อนหน้า :=สตริงว่าง
  • สำหรับแต่ละอักขระ c ใน s ทำ
    • ถ้า c ไม่เหมือนเดิมแล้ว
      • ก่อนหน้า :=c
      • อุณหภูมิ :=1
    • มิฉะนั้น
      • อุณหภูมิ :=อุณหภูมิ + 1
    • รวม :=รวม + อุณหภูมิ
  • ผลตอบแทนรวม

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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