Sunday, 6 December 2015

Two strings substring

Problem Statement
You are given two strings, A and B. Find if there is a substring that appears in both A and B.
Input Format
Several test cases will be given to you in a single file. The first line of the input will contain a single integer T, the number of test cases.
Then there will be T descriptions of the test cases. Each description contains two lines. The first line contains the string A and the second line contains the string B.
Output Format
For each test case, display YES (in a newline), if there is a common substring. Otherwise, display NO.
Constraints
All the strings contain only lowercase Latin letters.
1<=T<=10
1<=|A|,|B|<=105
Sample Input
2
hello
world
hi
world
Sample Output
YES
NO
Explanation
For the 1st test case, the letter o is common between both strings, hence the answer YES. (Furthermore, the letter l is also common, but you only need to find one common substring.)
For the 2nd test case, hi and world do not have a common substring, hence the answer NO.
Copyright © 2015 HackerRank.
All Rights Reserved



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

int main() {

    /* Enter your code here. Read input from STDIN. Print output to STDOUT */   
    int t, i;
    scanf("%d",&t);
    for( i = 0 ; i < t ; i++ )
        {
        char * in1, *in2;
        int store[26]={0}, j = 0, flag = 0;
        scanf("%ms",&in1);
        scanf("%ms",&in2);
        while(in1[j] != '\0')
            {
            store[in1[j] - 'a'] ++;
            j++;
        }
        j = 0;
        while(in2[j] != '\0')
            {
            if(store[in2[j] - 'a'] != 0)
                {
                flag = 1 ;
                break;
            }
            j++;
        }
        if(flag == 0)
            {
            printf("NO\n");
        }
        else
            {
            printf("YES\n");
        }
    }
    return 0;
}

No comments:

Post a Comment