用 C++ 統計給定字串中所有迴文子序列
在本文件中,我們將討論一個用於找出給定字串中所有迴文子序列數的程式。
為此,我們將獲得一個字串。我們的任務是找出可以在給定字串中生成的迴文子序列數。
示例
#include<iostream>
#include<cstring>
using namespace std;
//returning total palindromic sequence
int count_palin(string str){
int N = str.length();
//creating a 2D array
int cps[N+1][N+1];
memset(cps, 0 ,sizeof(cps));
for (int i=0; i<N; i++)
cps[i][i] = 1;
for (int L=2; L<=N; L++){
for (int i=0; i<N; i++){
int k = L+i-1;
if (str[i] == str[k])
cps[i][k] = cps[i][k-1] + cps[i+1][k] + 1;
else
cps[i][k] = cps[i][k-1] + cps[i+1][k] - cps[i+1][k-1];
}
}
return cps[0][N-1];
}
int main(){
string str = "abcb";
cout << "Total palindromic subsequence are : " << count_palin(str) << endl;
return 0;
}輸出
Total palindromic subsequence are : 6
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP