สมมติว่าเรามีสตริง เราต้องนับจำนวนสตริงย่อยพาลินโดรมที่มีอยู่ในสตริงนี้ สตริงย่อยที่มีดัชนีเริ่มต้นหรือดัชนีสิ้นสุดต่างกันจะนับเป็นสตริงย่อยที่ต่างกันแม้ว่าจะประกอบด้วยอักขระเดียวกันก็ตาม ดังนั้นหากอินพุตเป็น "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