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>
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