# Find indices of all occurrence of one string in other

• Difficulty Level : Medium
• Last Updated : 30 Nov, 2022

Given two strings, str1 and str2, the task is to print the indices(Consider, indices starting from 0) of the occurrence of str2 in str1. If no such index occurs, print “NONE”.

Examples:

```Input : GeeksforGeeks
Geeks
Output : 0 8

Input : GFG
g
Output : NONE```

A simple solution is to check all substrings of a given string one by one. If a substring matches print its index.

Implementation:

## C++

 `// C++ program to find indices of all` `// occurrences of one string in other.` `#include ` `using` `namespace` `std;` `void` `printIndex(string str, string s)` `{`   `    ``bool` `flag = ``false``;` `    ``for` `(``int` `i = 0; i < str.length(); i++) {` `        ``if` `(str.substr(i, s.length()) == s) {` `            ``cout << i << ``" "``;` `            ``flag = ``true``;` `        ``}` `    ``}`   `    ``if` `(flag == ``false``)` `        ``cout << ``"NONE"``;` `}` `int` `main()` `{` `    ``string str1 = ``"GeeksforGeeks"``;` `    ``string str2 = ``"Geeks"``;` `    ``printIndex(str1, str2);` `    ``return` `0;` `}`

## Java

 `// Java program to find indices of all` `// occurrences of one String in other.` `class` `GFG {`   `    ``static` `void` `printIndex(String str, String s)` `    ``{`   `        ``boolean` `flag = ``false``;` `        ``for` `(``int` `i = ``0``; i < str.length() - s.length() + ``1``; i++) {` `            ``if` `(str.substring(i, i + s.length()).equals(s)) {` `                ``System.out.print(i + ``" "``);` `                ``flag = ``true``;` `            ``}` `        ``}`   `        ``if` `(flag == ``false``) {` `            ``System.out.println(``"NONE"``);` `        ``}` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``String str1 = ``"GeeksforGeeks"``;` `        ``String str2 = ``"Geeks"``;` `        ``printIndex(str1, str2);` `    ``}` `}`   `// This code is contributed by Rajput-JI`

## Python3

 `# Python program to find indices of all` `# occurrences of one String in other.` `def` `printIndex(``str``, s):`   `    ``flag ``=` `False``;` `    ``for` `i ``in` `range``(``len``(``str``)):` `        ``if` `(``str``[i:i ``+` `len``(s)] ``=``=` `s):` `            `  `            ``print``( i, end ``=``" "``);` `            ``flag ``=` `True``;`   `    ``if` `(flag ``=``=` `False``):` `        ``print``(``"NONE"``);` `        `  `# Driver code        ` `str1 ``=` `"GeeksforGeeks"``;` `str2 ``=` `"Geeks"``;` `printIndex(str1, str2);`   `# This code contributed by PrinciRaj1992 `

## C#

 `// C# program to find indices of all` `// occurrences of one String in other.` `using` `System;`   `class` `GFG {`   `    ``static` `void` `printIndex(String str, String s)` `    ``{`   `        ``bool` `flag = ``false``;` `        ``for` `(``int` `i = 0; i < str.Length - s.Length + 1; i++) {` `            ``if` `(str.Substring(i,` `                              ``s.Length)` `                    ``.Equals(s)) {` `                ``Console.Write(i + ``" "``);` `                ``flag = ``true``;` `            ``}` `        ``}`   `        ``if` `(flag == ``false``) {` `            ``Console.WriteLine(``"NONE"``);` `        ``}` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `Main(String[] args)` `    ``{` `        ``String str1 = ``"GeeksforGeeks"``;` `        ``String str2 = ``"Geeks"``;` `        ``printIndex(str1, str2);` `    ``}` `}`   `// This code is contributed by 29AjayKumar`

## PHP

 ``

## Javascript

 ``

Output

`0 8 `

Time Complexity: O(n * n)
Auxiliary Space: O(1), no extra space is required, so it is a constant.

An efficient solution is to KMP string matching algorith

My Personal Notes arrow_drop_up
Related Articles