首页 > 代码库 > 5C-最长回文串个数
5C-最长回文串个数
给你一个字符串,让你找出长度最长的字符串的个数(字符串可以不同)
#include <iostream>#include <utility>#include <stack>#include <cstdio>#define LMT 1000003using namespace std;int len,ans;char bra[LMT];int l[LMT];//û?п???????? ()()()()int main(){ len=-1;ans=0; int bl,pre,prel; scanf("%s",bra); stack < pair<char,int> > st; pair<char,int> t; for(int i=0;bra[i];i++) { if(!st.empty()) t=st.top(); if(!st.empty()&&t.first==‘(‘&&bra[i]==‘)‘) { st.pop(); bl=i-t.second+1; bl+=l[t.second-1]; l[i]=bl; if(bl>len) { ans=1; len=bl; } else if(bl==len) ans++; } else st.push(make_pair(bra[i],i)); } if(ans==0)printf("0 1\n"); else printf("%d %d\n",len,ans); return 0;}
5C-最长回文串个数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。