You are given two strings, A and B. Find if there is a sub string that appears in both A and B.
Input:
2
hello
world
hi
world
Output:
YES
NO
Implementation:
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #define MAX 1000000 int main() { char *s,*v; int t; int i; int flag; int hashs[26],hashv[26]; scanf("%d",&t); s=(char*)malloc(sizeof(char)*MAX); v=(char*)malloc(sizeof(char)*MAX); while(t--) { flag=0; scanf("%s",s); scanf("%s",v); memset(hashs,0,sizeof(hashs)); memset(hashv,0,sizeof(hashv)); i=0; while(*(s+i)) { hashs[*(s+i)-'a']++; i++; } i=0; while(*(v+i)) { hashv[*(v+i)-'a']++; i++; } i=0; while(i<26) { if(hashs[i]!=0 && hashv[i]!=0) { flag=1; break; } i++; } if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }