【HDU - 2203】 亲和串 (思维题,可选KMP)
生活随笔
收集整理的這篇文章主要介紹了
【HDU - 2203】 亲和串 (思维题,可选KMP)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題干:
Problem Description 人隨著歲數(shù)的增長(zhǎng)是越大越聰明還是越大越笨,這是一個(gè)值得全世界科學(xué)家思考的問(wèn)題,同樣的問(wèn)題Eddy也一直在思考,因?yàn)樗诤苄〉臅r(shí)候就知道親和串如何判斷了,但是發(fā)現(xiàn),現(xiàn)在長(zhǎng)大了卻不知道怎么去判斷親和串了,于是他只好又再一次來(lái)請(qǐng)教聰明且樂(lè)于助人的你來(lái)解決這個(gè)問(wèn)題。親和串的定義是這樣的:給定兩個(gè)字符串s1和s2,如果能通過(guò)s1循環(huán)移位,使s2包含在s1中,那么我們就說(shuō)s2 是s1的親和串。
Input 本題有多組測(cè)試數(shù)據(jù),每組數(shù)據(jù)的第一行包含輸入字符串s1,第二行包含輸入字符串s2,s1與s2的長(zhǎng)度均小于100000。
Output 如果s2是s1的親和串,則輸出"yes",反之,輸出"no"。每組測(cè)試的輸出占一行。
Sample Input AABCD CDAA ASD ASDF
Sample Output yes no
解題報(bào)告:小思維題。稍后貼上KMP代碼。
ac代碼:
#include<cstdio> #include<iostream> #include<cctype> #include<cstring>using namespace std;char s1[200000 + 5]; char s2[100000 + 5];int len1,len2; int main() {while(cin>>s1>>s2) {len1=strlen(s1);len2=strlen(s2);strcat(s1,s1); // printf("%s",s1);if(strstr(s1,s2)!=NULL) {printf("Yes\n");}else printf("No\n");}return 0 ; }總結(jié):
總結(jié)
以上是生活随笔為你收集整理的【HDU - 2203】 亲和串 (思维题,可选KMP)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ipssvc.exe - ipssvc是
- 下一篇: ISBMgr.exe - ISBMgr是