判斷第一個字串是不是第二個字串的子字串

[心得]

1.很折騰人的 Runtime error,字串的字元個數要開到 100000

2.中文題目和原文題目不同,原題目要求輸入結束再一次輸出

3.當內迴圈的比對皆不相同,必須跳出,否則 i 會繼續往下加繼續從頭比對

 

#include <stdio.h>
#include <string.h>

int main()
{
    int i,j,k,cnt=0;
    char s[100000],t[100000];
    int lenS,lenT;
    int fail[100000]={0};
   
    while(scanf("%s %s",s,t)!=EOF)
    {
        lenS=strlen(s);
        lenT=strlen(t);
       
        for(i=0,k=0;i<lenS;i++)
        {
            for(j=k;j<lenT;j++)
            {           
                if(s[i]==t[j])
                {
                    k=j+1;
                    break;
                }
                else if(j==lenT-1)
                {
                    fail[cnt]=1;
                    break;
                }
            }
            if(fail[cnt]) break;
        }
        cnt++;
    }
   
    for(i=0;i<cnt;i++)
    {
        if(fail[i]) printf("No\n");
        else printf("Yes\n");
    }
       
    return 0;
}

創作者介紹
創作者 RingsACM 的頭像
RingsACM

Ring's ACM

RingsACM 發表在 痞客邦 留言(0) 人氣()