现在给你一个字符串S,请你计算S中有多少连续子串是回文串。
输入
输入包含多组测试数据。每组输入是一个非空字符串,长度不超过5000。
输出
对于每组输入,输出回文子串的个数。
样例输入 Copy
aba
aa
样例输出 Copy
4
3
代码示例(自己写的,只能过平台,不完美)
//#include<iostream>
//#include<string>
//#include<string.h>
//using namespace std;
//
//int main(){
// string s;
// while(getline(cin,s)){
// int len = s.length();
// int i,left = 0,right = 0;
// int cnt = len;
// for(i = 0; i < len; i++){
// left = i - 1;//隔了一个字符对称的两个字符进行比较
// right = i + 1;
// while(left >= 0 && right < len){
// if(s[left] == s[right]){//与相隔一个字符对称的进行比较(XYX型,比较两个XX) ,看是否相等,相等则回文子串加1
// ++ cnt;
// -- left;
// ++ right;//若符合则向两边扩散,看更长的子串(隔着3个Y,AXYXA)的两边两个A是否相等,直到越界,相等就加1
// }else{
// break;
// }
// }
// left = i - 1;//左右相邻的两个字符进行比较
// right = i;
// while(left >= 0 && right < len){
// if(s[left] == s[right]){//与相邻字符进行比较(XX型,比较两个XX) ,看是否相等,相等则回文子串加1
// ++ cnt;
// -- left;
// ++ right;//同上,若符合向两边扩散(AXXA),看两个边A是否相等,直到遍历完整个字符串
// }else{
// break;
// }
// }
// }
// cout << cnt << endl;
// }
// return 0;
//}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。