สมมติว่าเรามีสตริง เราต้องนับจำนวนสตริงย่อยพาลินโดรมที่มีอยู่ในสตริงนี้ สตริงย่อยที่มีดัชนีเริ่มต้นหรือดัชนีสิ้นสุดต่างกันจะนับเป็นสตริงย่อยที่ต่างกันแม้ว่าจะประกอบด้วยอักขระเดียวกันก็ตาม ดังนั้นหากอินพุตเป็น "aaa" เอาต์พุตจะเป็น 6 เนื่องจากมีสตริงย่อย palindromic หกสตริง เช่น "a", "a", "a", "aa", "aa", "aaa"
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- นับ :=0
- สำหรับฉันอยู่ในช่วง 0 ถึงความยาวถ้าสตริง
- สำหรับ j ในช่วง i + 1 ถึงความยาวของสตริง + 1
- temp :=สตริงย่อยจากดัชนี i ถึง j
- ถ้าอุณหภูมิเป็นพาลินโดรม ให้เพิ่มจำนวนขึ้น 1
- สำหรับ j ในช่วง i + 1 ถึงความยาวของสตริง + 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