Poj--3080Blue Jeans+KMP水題
題目連結:點選進入
大概的題意就是給n個字串,然後讓我們找出他們的最長的公共子串。
因為題目的資料比較小,我們可以列舉第一個串的所有子串,然後再用KMP判斷一下這個子串是否出現在其它字串中。
程式碼如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=100;
///x是模式串,m是長度,next是模式串對應的next陣列
void kmp_pre(char x[],int m,int next[])
{
int i,j;
j=next[0]=-1;
i=0;
while(i<m)
{
while(-1!=j&&x[i]!=x[j])
j=next[j];
next[++i]=++j;
}
}
int next[maxn];
///x是模式串,y是主串
bool KMP_count(char x[],int m,char y[],int n)
{
int i,j;
int ans=0;
kmp_pre(x,m,next);
i=j=0;
while(i<n)
{
while(-1!=j&&y[i]!=x[j])
j=next[j];
i++;j++;
if(j>=m)
return true;
}
return false;
}
char ans[maxn];
char str[20][maxn];
int main()
{
int t;
freopen("in.txt","r",stdin);
scanf("%d",&t);
bool flag;
char x[maxn];
while(t--)
{
int n,k;
flag=false;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%s",str[i]);
int len=strlen(str[0]);
for(int i=0;i<len;i++)
{
int cnt=0;
x[cnt++]=str[0][i];
for(int j=i+1;j<len;j++)
{
x[cnt++]=str[0][j];
for(k=1;k<n;k++)
{
if(!KMP_count(x,cnt,str[k],strlen(str[k])))
break;
}
if(k>=n)
{
if(!flag||cnt>strlen(ans))
{
x[cnt]='\0'; ///必須自己加上字串結束標誌
strcpy(ans,x);
flag=true;
}
else
{
x[cnt]='\0';
if(cnt==strlen(ans)&&strcmp(x,ans)<0)
strcpy(ans,x);
}
}
}
}
if(!flag||strlen(ans)<3)
{
printf("no significant commonalities\n");
continue;
}
printf("%s\n",ans);
}
return 0;
}
相關文章
- 水題得分...
- 3 月水題練習
- 每日水題 11-26
- hdu2045 遞迴水題遞迴
- 組合數學水題 $19$ 道
- CodeForces - 976A:Minimum Binary Number(水題)
- Accept today?HDU1177,水題記錄:)
- 水題 求眾數 (hash的練習)
- Leetcode_455_分發餅乾_水題LeetCode
- rt水電費水電費水電費水電費是的ytrytr
- 水銀求購價格,求購水銀,工業水銀,水銀價錢,購買水銀,購買水銀價格,水銀哪裡有賣,水銀報價多少錢
- LeetCode每日一題: 檸檬水找零(No.860)LeetCode每日一題
- 三個水桶等分8升水的問題
- leedcode每日一題:860. 檸檬水找零每日一題
- 優質水銀,水銀價格,廢舊水銀回收
- 水銀有什麼用途,優質水銀價格,優質水銀,水銀價格,廢舊水銀回收
- 智慧水務系統:構建高效節水的城市水網
- 回收廢舊水銀,優質水銀,水銀供應商
- 數木莫系且的旭醬買水問題
- 寫個部落格記錄自己的CF水題之旅
- 水銀價格-工業水銀
- 回收廢舊水銀,水銀回收
- 麗水開票-麗水開票
- 今日水
- 水銀汞價格,水銀廠家, 水銀多少錢一斤
- 儀器儀表水銀,水銀溫度計,水銀體溫計
- Codeforces A. Add Candies (#683 Div.2 by Meet IT) (思維 / 水題)
- 水銀生產廠家價格,水銀價格,回收廢舊水銀
- 液體水銀哪裡有,銷售高純度水銀,水銀回收
- 水銀有什麼用途,優質水銀價格,水銀回收廢舊
- 水銀價格貨源水銀現貨
- 水銀有賣的嗎?水銀價格
- 水的特性
- 水銀回收,
- 【水汐の編譯原理】 詞法分析器 課題1編譯原理詞法分析
- 儀器儀表水銀,水銀溫度計,水銀體溫計,水銀鍍金,汞的價格,水銀回收處理,淘砂金專用水銀
- 水銀價格,回收廢舊水銀,Hg:99.999%
- 架構高可用之限流-抽刀斷水水更流架構