Đếm số palindromes trong một chuỗi trong python

Một chuỗi là một palindrome khi nó đọc ngược cũng như đọc xuôi và một chuỗi con là một chuỗi các ký tự liền kề trong chuỗi. Trong bài viết này, chúng ta sẽ thảo luận về nhiều cách tiếp cận để tìm số lượng chuỗi con palindromic trong một chuỗi đã cho như

  • Cách tiếp cận vũ phu [cách tiếp cận hai con trỏ]
  • phương pháp đệ quy
  • Phương pháp lập trình động
  • Thuật toán Manacher đã sửa đổi

Hãy để chúng tôi thảo luận về tất cả chúng từng cái một trong bài viết này

Ví dụ.
Đầu vào. str = "bcbbc"
Đầu ra. 8
Giải thích. chuỗi con palindromic.
'b','c','b','b','c','bcb','cbbc','bb'

Đầu vào. str = "eaaebeb"
Đầu ra. 11
Giải thích. chuỗi con palindromic.
'e','a','a','e','b','e','b','eaae','aa','beb','

Cách tiếp cận vũ phu

Trong giải pháp brute force, chúng ta lấy từng chuỗi con theo cách tiếp cận con trỏ và kiểm tra xem nó có phải là một palindrome hay không

Thực hiện

Triển khai phương pháp Brute Force trong C++

#include 
#include
using namespace std;

bool isPalindromic[string s, int i, int j]
{   
    if [i > j]
        return 1;
 
    if [s[i] != s[j]]
        return  0;
 
    return isPalindromic[s, i + 1, j - 1];
}

int main[] {
    string str;
    cin>>str;
    
    int count =0;
    
    for[int i=0;i>str;
    coutj] return 0;

   if[i==j] return 1;
   
   if[dp[i][j]!=-1] return dp[i][j];
  
   if[isPalindrome[str,i,j]] return dp[i][j]=PalindromicSubstrings[i+1,j,str]+ PalindromicSubstrings[i,j-1,str]+1-PalindromicSubstrings[i+1, j-1,str];

   else return dp[i][j]= PalindromicSubstrings[i+1,j,str]+ PalindromicSubstrings[i,j-1,str]-PalindromicSubstrings[i+1, j-1,str];
}   
int main[] {

    string str;
    cin>>str;
    memset[p,-1,sizeof[p]];
    memset[dp,-1,sizeof[dp]];

    cout>str;
 
    cout

Chủ Đề