Coincidencia de string con * (que coincide con cualquiera) en cualquiera de las dos strings

Se le dan dos strings A y B. Las strings también contienen el carácter especial *. puede reemplazar * con cualquier carácter alfabético. Finalmente, debe decir si es posible hacer que ambas strings sean iguales o no.
Ejemplos: 
 

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

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

Explicación: cómo podemos resolver el problema anterior, básicamente tenemos tres casos, 
caso 1: ambas strings contienen * en una posición particular, en ese momento podemos reemplazar ambos * con cualquier carácter para que la string sea igual en esa posición. 
Caso 2: si una string tiene carácter y otra tiene * en esa posición. Entonces, podemos reemplazar * con el mismo carácter en otra string. 
Caso 3: si ambas strings tienen un carácter en esa posición, entonces deben ser iguales, de lo contrario no podemos hacerlas iguales. 
 

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>
Producción: 

1

 

Publicación traducida automáticamente

Artículo escrito por sahilshelangia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *