สมมติว่าเรามีสตริงที่เป็นตัวพิมพ์เล็ก เราต้องหาจำนวนสตริงย่อยทั้งหมดที่มีอักขระที่ไม่ซ้ำกันหนึ่งตัว
ดังนั้น หากอินพุตเป็นเหมือน "xxyy" ผลลัพธ์จะเป็น 6 เนื่องจากสตริงย่อยคือ [x, x, xx, y, y, yy]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- รวม :=0
- ก่อนหน้า :=สตริงว่าง
- สำหรับแต่ละอักขระ c ใน s ทำ
- ถ้า c ไม่เหมือนเดิมแล้ว
- ก่อนหน้า :=c
- อุณหภูมิ :=1
- มิฉะนั้น
- อุณหภูมิ :=อุณหภูมิ + 1
- รวม :=รวม + อุณหภูมิ
- ถ้า c ไม่เหมือนเดิมแล้ว
- ผลตอบแทนรวม
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
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