Help me in solving TWOSTR problem

My issue

expected output and my output is the same but why these showing failed test case

My code

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

int main(void) {
	char x[50],y[50];
	int t;
	scanf("%d",&t);
	while(t--){
	    scanf("%s%s",&x,&y);
	    for (int i=0;i<strlen(x);i++){
	        if(x[i]== y[i]){
	            if(i==strlen(x)-1){
	                printf("Yes\n");}
	            continue;
	        }
	        else if(x[i]=='?' || y[i]=='?'){
	            if(i==strlen(x)-1){
	                printf("Yes\n");}
	            continue;
	            
	        }
	        else{
	            printf("NO\n");
	            break;
	        }
	        
	    }
	    
	}
	
	return 0;
}


Learning course: Strings using C
Problem Link: Chef and the Wildcard Matching Practice Problem in - CodeChef

@hacker017
Check the “No”.
in this problem its case sensitive to u have to print as it is given .