您的位置:首页 > 其它

算法题11 字符串的所有对称子串

2016-02-02 11:25 218 查看
题目

  给定一个字符串,求其中所有的对称子串

分析

  对称字符串无非两种情况,一是以1个字符为中心对称,如"abcba",一是完全对称,如"abccba"。对于字符串对称的判断,从内往外查找比较方便

代码 

int SymmtricSubStrings(char* str,vector<string>& vSubStrs)
{
if (str==NULL)
{
return -1;
}
string s=str;

//遍历字符串
char* p=str+1;
while (*p!='\0')
{
//odd nums
char* pre=p-1;
char* next=p+1;
int len=1;
while (pre>=str&&*next!='\0'&&*pre==*next)
{
len=len+2;
pre--;
next++;
}
if (len>1)
{
vSubStrs.push_back(s.substr(pre-str+1,len));
}

//even nums
pre=p-1;
next=p;
len=0;
while (pre>=str&&*next!='\0'&&*pre==*next)
{
len=len+2;
pre--;
next++;
}
if (len>1)
{
vSubStrs.push_back(s.substr(pre-str+1,len));
}

p++;
}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: