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

สตริงย่อยพาลินโดรมใน Python


สมมติว่าเรามีสตริง เราต้องนับจำนวนสตริงย่อยพาลินโดรมที่มีอยู่ในสตริงนี้ สตริงย่อยที่มีดัชนีเริ่มต้นหรือดัชนีสิ้นสุดต่างกันจะนับเป็นสตริงย่อยที่ต่างกันแม้ว่าจะประกอบด้วยอักขระเดียวกันก็ตาม ดังนั้นหากอินพุตเป็น "aaa" เอาต์พุตจะเป็น 6 เนื่องจากมีสตริงย่อย palindromic หกสตริง เช่น "a", "a", "a", "aa", "aa", "aaa"

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

  • นับ :=0
  • สำหรับฉันอยู่ในช่วง 0 ถึงความยาวถ้าสตริง
    • สำหรับ j ในช่วง i + 1 ถึงความยาวของสตริง + 1
      • temp :=สตริงย่อยจากดัชนี i ถึง j
      • ถ้าอุณหภูมิเป็นพาลินโดรม ให้เพิ่มจำนวนขึ้น 1
  • เคาน์เตอร์คืนสินค้า

ตัวอย่าง(Python)

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

class Solution:
   def countSubstrings(self, s):
      counter = 0
      for i in range(len(s)):
         for j in range(i+1,len(s)+1):
            temp = s[i:j]
            if temp == temp[::-1]:
               counter+=1
      return counter
ob1 = Solution()
print(ob1.countSubstrings("aaaa"))

อินพุต

"aaaa"

ผลลัพธ์

10