Skip to content
Related Articles

Related Articles

String matching with * (that matches with any) in any of the two strings

View Discussion
Improve Article
Save Article
Like Article
  • Difficulty Level : Easy
  • Last Updated : 06 May, 2021

You are given two strings A and B. Strings also contains special character * . you can replace * with any alphabetic character. Finally, you have to tell whether it is possible to make both string same or not.
Examples: 
 

Input : A = "gee*sforgeeks"
        B = "geeksforgeeks"
Output :Yes

Input :A = "abs*"
       B = "abds"
Output :No

 

Explanation: How we can solve above problem, Basically we three cases, 
Case 1: Both string contains * at particular position, at that time we can replace both * with any character make the string equal at that position. 
Case 2: If one string have character and other has * at that position. So, we can replace * with the same character in other string. 
Case 3: If both the string has a character at that position, then they must be same, otherwise we can’t make them equal. 
 

C++




// CPP program for string matching with *
#include <bits/stdc++.h>
using namespace std;
 
bool doMatch(string A, string B)
{
    for (int i = 0; i < A.length(); i++)
 
        // if the string don't have *
        // then character at that position
        // must be same.
        if (A[i] != '*' && B[i] != '*')
            if (A[i] != B[i])
               return false;
 
    return true;
}
 
int main()
{
    string A = "gee*sforgeeks";
    string B = "geeksforgeeks";
    cout << doMatch(A, B);
    return 0;
}

Java




// Java program for string matching with *
import java.util.*;
 
public class GfG {
     
    // Function to check if the two
    // strings can be matched or not
    public static int doMatch(String A, String B) {
     
        for (int i = 0; i < A.length(); i++){
       
            // if the string don't have *
            // then character at that position
            // must be same.
            if (A.charAt(i) != '*' && B.charAt(i) != '*'){ 
                if (A.charAt(i) != B.charAt(i))
                   return 0;
            }
        }
   
        return 1;
    }
     
    // Driver code
    public static void main(String []args){
         
        String A = "gee*sforgeeks";
        String B = "geeksforgeeks";
        System.out.println(doMatch(A, B));
    }
}
 
// This code is contributed by Rituraj Jain

Python3




# Python3 program for string
# matching with *
 
def doMatch(A, B):
     
    for i in range(len(A)):
         
        # if the string don't have *
        # then character t that position
        # must be same.
        if A[i] != '*' and B[i] != '*':
            if A[i] != B[i]:
                return False
    return True
 
#Driver code
if __name__=='__main__':
    A = "gee*sforgeeks"
    B = "geeksforgeeks"
    print(int(doMatch(A, B)))
 
# this code is contributed by
# Shashank_Sharma

C#




// C# program for string matching with
using System;
     
class GfG
{
     
    // Function to check if the two
    // strings can be matched or not
    public static int doMatch(String A, String B)
    {
     
        for (int i = 0; i < A.Length; i++)
        {
         
            // if the string don't have *
            // then character at that position
            // must be same.
            if (A[i] != '*' && B[i] != '*')
                if (A[i] != B[i])
                    return 0;
        }
     
        return 1;
    }
     
    // Driver code
    public static void Main(String []args)
    {
        String A = "gee*sforgeeks";
        String B = "geeksforgeeks";
        Console.WriteLine(doMatch(A, B));
    }
}
 
// This code contributed by Rajput-Ji

PHP




<?php
// PHP program for string matching with *
 
function doMatch($A, $B)
{
    for ($i = 0; $i < strlen($A); $i++)
 
        // if the string don't have *
        // then character at that position
        // must be same.
        if ($A[$i] != '*' && $B[$i] != '*')
            if ($A[$i] != $B[$i])
            return false;
 
    return true;
}
 
// Driver Code
$A = "gee*sforgeeks";
$B = "geeksforgeeks";
echo doMatch($A, $B);
 
// This code is contributed by Tushil.
?>

Javascript




<script>
// javascript program for string matching with * public class GfG {
 
    // Function to check if the two
    // strings can be matched or not
    function doMatch(A, B)
    {
 
        for (i = 0; i < A.length; i++)
        {
 
            // if the string don't have *
            // then character at that position
            // must be same.
            if (A.charAt(i) != '*' && B.charAt(i) != '*')
            {
                if (A.charAt(i) != B.charAt(i))
                    return 0;
            }
        }
 
        return 1;
    }
 
    // Driver code
        var A = "gee*sforgeeks";
        var B = "geeksforgeeks";
        document.write(doMatch(A, B));
 
// This code is contributed by aashish1995.
</script>

Output: 

1

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!