Related Articles
Check if a string can be repeated to make another string
• Difficulty Level : Medium
• Last Updated : 13 May, 2021

Given two strings a and b, the task is to check how many times the string a can be repeated to generate the string b. If b cannot be generated by repeating a then print -1.
Examples:

Input: a = “geeks”, b = “geeksgeeks”
Output: 2
“geeks” can be repeated twice to generate “geeksgeeks”
Input: a = “df”, b = “dfgrt”
Output: -1

Approach:

• If len(b) % len(a) != 0 then print -1 as b cannot be generated by repeating a.
• Else set count = len(b) / len(a) and repeat a count number of times.
• If a = b then print count.
• Else print -1.

Below is the implementation of the above approach:

## C++

 `// CPP implementation of the approach``#include``using` `namespace` `std;` `// Function to return the count of repetitions``// of string a to generate string b``int` `getCount(string a, string b)``{` `    ``// If b cannot be generated by repeating a``    ``if``(b.length() % a.length() != 0)``        ``return` `-1;``    ` `    ``int` `count = b.length() /a.length();` `    ``// Repeat a count number of times``    ``string str = ``""``;``    ``for``(``int` `i = 0; i < count; i++)``    ``{``        ``str = str + a;``    ``}``    ``if``(str == b)``        ``return` `count;``    ` `    ``return` `-1;``}` `// Driver code``int` `main()``{``    ``string a = ``"geeks"``;``    ``string b = ``"geeksgeeks"``;``    ``cout << (getCount(a, b));``    ``return` `0;``}` `// This code is contributed by``// Surendra_Gangwar`

## Java

 `// Java implementation of the approach` `class` `GfG``{` `    ``// Function to return the count of repetitions``    ``// of string a to generate string b``    ``static` `int` `getCount(String a, String b)``    ``{``        ``// If b cannot be generated by repeating a``        ``if``(b.length() % a.length() != ``0``)``            ``return` `-``1``;``        ` `        ``int` `count = b.length() / a.length();``    ` `        ``// Repeat a count number of times``        ``String str = ``""``;``        ``for``(``int` `i = ``0``; i < count; i++)``        ``{``            ``str = str + a;``        ``}``        ` `        ``if``(str.equals(b))``            ``return` `count;``        ` `        ``return` `-``1``;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String []args)``    ``{``        ``String a = ``"geeks"``;``        ``String b = ``"geeksgeeks"``;``        ``System.out.println(getCount(a, b));``    ``}``}``    ` `// This code is contributed by Rituraj Jain`

## Python 3

 `# Python3 implementation of the approach` `# Function to return the count of repetitions``# of string a to generate string b``def` `getCount(a, b):``    ` `    ``# If b cannot be generated by repeating a``    ``if``(``len``(b) ``%` `len``(a) !``=` `0``):``        ``return` `-``1``;``    ` `    ``count ``=` `int``(``len``(b) ``/` `len``(a))``    ` `    ``# Repeat a count number of times``    ``a ``=` `a ``*` `count``    ` `    ``if``(a ``=``=` `b):``        ``return` `count``    ` `    ``return` `-``1``;` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``a ``=` `'geeks'``    ``b ``=` `'geeksgeeks'``    ``print``(getCount(a, b))`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GfG``{` `    ``// Function to return the count of repetitions``    ``// of string a to generate string b``    ``static` `int` `getCount(String a, String b)``    ``{``        ``// If b cannot be generated by repeating a``        ``if``(b.Length % a.Length != 0)``            ``return` `-1;``        ` `        ``int` `count = b.Length / a.Length;``    ` `        ``// Repeat a count number of times``        ``String str = ``""``;``        ``for``(``int` `i = 0; i < count; i++)``        ``{``            ``str = str + a;``        ``}``        ` `        ``if``(str.Equals(b))``            ``return` `count;``        ` `        ``return` `-1;``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main(String []args)``    ``{``        ``String a = ``"geeks"``;``        ``String b = ``"geeksgeeks"``;``        ``Console.WriteLine(getCount(a, b));``    ``}``}` `// This code contributed by Rajput-Ji`

## PHP

 ``

## Javascript

 ``
Output:
`2`

My Personal Notes arrow_drop_up