Dadas dos strings str1 y str2 de longitud N y M respectivamente, la tarea es verificar si la string str1 se puede formar concatenando la string str2 repetidamente o no.
Ejemplos:
Entrada: str1 = “abcabcabc”, str2 = “abc”
Salida: Sí
Explicación:
Concatenar la string str2 tres veces genera la string (“abc” + “abc” + “abc” = ) “abcabcabc”.
Por lo tanto, la salida requerida es Sí.Entrada: str1 = «abcabcab», str2 = «abc»
Salida: No
Enfoque: siga los pasos a continuación para resolver el problema:
- Atraviesa las strings str1 y str2 .
- Para cada carácter de str1 y str2 , verifique si str1[i] == str2[i % M] o no.
- Si se encuentra que es falso para cualquier carácter, escriba «No» .
- De lo contrario, escriba «Sí» .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to implement // the above approach #include <bits/stdc++.h> using namespace std; // Function to check if a string is // concatenation of another string bool checkConcat(string str1, string str2) { // Stores the length of str2 int N = str1.length(); // Stores the length of str1 int M = str2.length(); // If M is not multiple of N if (N % M != 0) { return false; } // Traverse both the strings for (int i = 0; i < N; i++) { // If str1 is not concatenation // of str2 if (str1[i] != str2[i % M]) { return false; } } return true; } // Driver Code int main() { string str1 = "abcabcabc"; string str2 = "abc"; if (checkConcat(str1, str2)) { cout << "Yes"; } else { cout << "No"; } }
Java
// Java program to implement // the above approach import java.util.*; class GFG{ // Function to check if a String is // concatenation of another String static boolean checkConcat(String str1, String str2) { // Stores the length of str2 int N = str1.length(); // Stores the length of str1 int M = str2.length(); // If M is not multiple of N if (N % M != 0) { return false; } // Traverse both the Strings for(int i = 0; i < N; i++) { // If str1 is not concatenation // of str2 if (str1.charAt(i) != str2.charAt(i % M)) { return false; } } return true; } // Driver Code public static void main(String[] args) { String str1 = "abcabcabc"; String str2 = "abc"; if (checkConcat(str1, str2)) { System.out.print("Yes"); } else { System.out.print("No"); } } } // This code is contributed by Amit Katiyar
Python3
# Python3 program to implement # the above approach # Function to check if a is # concatenation of another string def checkConcat(str1, str2): # Stores the length of str2 N = len(str1) # Stores the length of str1 M = len(str2) # If M is not multiple of N if (N % M != 0): return False # Traverse both the strings for i in range(N): # If str1 is not concatenation # of str2 if (str1[i] != str2[i % M]): return False return True # Driver Code if __name__ == '__main__': str1 = "abcabcabc" str2 = "abc" if (checkConcat(str1, str2)): print("Yes") else: print("No") # This code is contributed by mohit kumar 29
C#
// C# program to implement // the above approach using System; class GFG{ // Function to check if a String is // concatenation of another String static bool checkConcat(String str1, String str2) { // Stores the length // of str2 int N = str1.Length; // Stores the length // of str1 int M = str2.Length; // If M is not multiple // of N if (N % M != 0) { return false; } // Traverse both the Strings for(int i = 0; i < N; i++) { // If str1 is not // concatenation of str2 if (str1[i] != str2[i % M]) { return false; } } return true; } // Driver Code public static void Main(String[] args) { String str1 = "abcabcabc"; String str2 = "abc"; if (checkConcat(str1, str2)) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by 29AjayKumar
Javascript
<script> // javascript program for the // above approach // Function to check if a String is // concatenation of another String function checkConcat(str1, str2) { // Stores the length of str2 let N = str1.length; // Stores the length of str1 let M = str2.length; // If M is not multiple of N if (N % M != 0) { return false; } // Traverse both the Strings for(let i = 0; i < N; i++) { // If str1 is not concatenation // of str2 if (str1[i] != str2[i % M]) { return false; } } return true; } // Driver Code let str1 = "abcabcabc"; let str2 = "abc"; if (checkConcat(str1, str2)) { document.write("Yes"); } else { document.write("No"); } </script>
Yes
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por crisscross y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA