/*
how many palindrome substring in a given string.
exp: "aba" return 4, "abba" return 6.
*/
#include <string>
#include <iostream>
using namespace std;
int palindromeSubs(string str) {
if(str.size() <= 1) return str.size();
int count = str.size();
for(int i = 1; i < str.size(); ++i) {
// even length subs
for(int l = i - 1, r = i; l >= 0 && r < str.size() && (str[l] == str[r]); l--, r++) {
count++;
}
// odd length subs
for(int l = i - 1, r = i + 1; l >= 0 && r < str.size() && (str[l] == str[r]); l--, r++)
count++;
}
return count;
}
int main(void) {
cout << palindromeSubs("aba") << endl;
cout << palindromeSubs("abba") << endl;
}
Count number of Palindrome Substring numbers.
最新推荐文章于 2024-03-05 17:50:21 发布