兩道相似KMP題

2022-02-14 02:32:16 字數 2262 閱讀 6274

1.poj 3450 coporate identity

這兩題的解法都是列舉子串,然後匹配,像這種題目以後可以不用kmp來做,直接字串自帶的strstr函式搞定,如果字串未出現,該函式返回null。

下面貼出其比較。

**:(kmp版)(1360ms 888kb)

#include #include 

#include

#include

#include

using

namespace

std;

#define n 4007

char ans[203],str[203

];char ss[n][203],tt[203

];int next[203

];void getnext(char *ss)

}int kmp(char *ss,char *tt)

if(j ==m)

return1;

return0;

}int

main()

if(j ==n)}}

if(ans[0] == '\0'

) cout

<

identity lost\n";

else

cout

}return0;

}

view code

**:(strstr函式版)(454ms 912kb)

#include #include 

#include

#include

#include

#include

using

namespace

std;

#define n 4007

char ans[203],str[203

];char ss[n][203],tt[203

];int

main()

if(j ==n)}}

if(ans[0] == '\0'

) cout

<

identity lost\n";

else

cout

}return0;

}

view code

2.poj 3080 blue jeans

**:(kmp版)(32ms 684kb)

#include #include 

#include

#include

#include

using

namespace

std;

#define n 4007

char ans[65],str[65

];char ss[12][65],tt[65

];int next[65

];void getnext(char *ss)

}int kmp(char *ss,char *tt)

if(j ==m)

return1;

return0;

}int

main()

if(j ==n)}}

if(ans[0] == '

\0' || strlen(ans) < 3

) cout

<

no significant commonalities\n";

else

cout

}return0;

}

view code

**:(strstr函式版)(0ms 700kb)

#include #include 

#include

#include

#include

using

namespace

std;

#define n 4007

char ans[65],str[65

];char ss[12][65

];int

main()

if(j ==n)}}

if(ans[0] == '

\0' || strlen(ans) < 3

) cout

<

no significant commonalities\n";

else

cout

}return0;

}

view code

kmp 模版及兩道模版題

現在我們有母串s,模式串t 我們傳統的字串匹配都思想是,不管此次匹配成功與否,都是模式串向前移動一位繼續匹配,這樣子效率肯定是很慢的,因為我們根本沒有利用到之前已經匹配過的資訊 kmp演算法就是利用之前匹配的資訊,使模式串前移更多的位,使其效率大大提公升,那麼我們怎麼知道什麼時候前移多少位呢,首先我...

兩道選擇題

教授面帶微笑,走進教室,對我們說 我受一家機構委託,來做一項問卷調查,請同學們幫個忙。一聽這話,教室裡輕微的一陣議論開了,大學課堂本來枯燥,這下好玩多了。問卷表發下來,一看,只有兩道題。第一題 他很愛她。她細細的瓜子臉,彎彎的娥眉,面色白皙,美麗動人。可是有一天,她不幸遇上了車禍,痊癒後,臉上留下幾...

兩道選擇題

記得大學一堂選修課上。教授面帶微笑,走進教室,對我們說 我受一家機構委託,來做一項問卷調查,請同學們幫個忙。一聽這話,教室裡輕微的一陣議論開了,大學課堂本來枯燥,這下好玩多了。問卷表發下來,一看,只有兩道題。第一題 他很愛她。她細細的瓜子臉,彎彎的娥眉,面色白皙,美麗動人。可是有一天,她不幸遇上了車...