poj1936题解(水题,但容易超时)

1.容易超时。

//for(int i=0;j<len1&&i<len2;i++)----->正确
//for(int i=0;j<strlen(a)&&i<strlen(b);i++)----->超时

2.用最长公共子序列应该可以做出来。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char a[100100];
char b[100100];
int main()
{
    
    
    while(scanf("%s%s",a,b)!=EOF)
    {
    
    

        int j=0;
        int flag=0;
        int len1=strlen(a);
        int len2=strlen(b);
        for(int i=0;j<len1&&i<len2;i++)
//--->for(int i=0;j<strlen(a)&&i<strlen(b);i++)
        {
    
    
            if(a[j]==b[i])
            {
    
    
                j++;
            }
        }
        if(j==strlen(a))
        {
    
    
            printf("Yes\n");
        }
        else
        {
    
    
            printf("No\n");
        }
        memset(a,'\0',sizeof(strlen(a)));
        memset(b,'\0',sizeof(strlen(b)));
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/mingjiweixiao/article/details/113195127
今日推荐