# Maximum power of jump required to reach the end of string

Given a string consisting of 1 and 0, the task is to find out the maximum power of jump required to reach the end of the string. At a time you can jump from one 1 to next 1 or from one 0 to next 0.
Note: Power of jump is defined as the distance between two consecutive 1’s or two consecutive 0’s.

Examples:

```Input: 10101
Output: 2
First, make a power jump of 1 to reach first 1,
then a power jump of 2 to reach second 1
and then finally a power jump of 2
to reach the end of the string
hence the maximum power of jump is 2.

Input: 11110
Output: 5
Since to reach the end of the string, we have to make
power jump of 5 to reach 0 and end of the string
```

Approach:

• Check if the last character of given string is 1 or 0.
• If the last character is 1 then search for the first 1 in the string and continue to jump to the next 1 to reach the last of the string. Update the maximum jumps.
• Similarly, if the last character is 0 then search for the first 0 in the string and continue to jump to the next 0 to reach the last of the string. Update the maximum jumps.
• Return the maximum number of jumps taken to reach the end.

## C++

 `// C++ programme to calculate power of jump ` `#include ` `using` `namespace` `std; ` ` `  `// Function to calculate the maximum power of the jump ` `int` `powerOfJump(string s) ` `{ ` `    ``// Initialize the count with 1 ` `    ``int` `count = 1; ` `    ``int` `max_so_far = INT_MIN; ` `     `  `    ``// Find the character at last index ` `    ``char` `ch = s[s.length() - 1]; ` `     `  `    ``// Start traversing the string ` `    ``for` `(``int` `i = 0; i < s.length(); i++)  ` `    ``{ ` `        ``// Check if the current char is equal ` `        ``// to the last character ` `        ``if` `(s[i] == ch)  ` `        ``{ ` `            ``// max_so_far stores maximum value of ` `            ``// the power of the jump from starting ` `            ``// to ith position ` `            ``if` `(count > max_so_far) { ` `                ``max_so_far = count; ` `                 `  `            ``} ` `            ``// Reset the count to 1 ` `            ``count = 1; ` `             `  `        ``} ` `        ``// Else, increment the number of jumps/count ` `        ``else` `        ``count++; ` `         `  `    ``} ` `    ``// Return the maximum number of jumps ` `    ``return` `max_so_far; ` `     `  `} ` ` `  `// Driver code ` `int` `main(){ ` `    ``string st = ``"1010101"``; ` `    ``cout<

## Java

 `// java programme to calculate power of jump ` `import` `java.util.ArrayList; ` ` `  `public` `class` `string_sort { ` ` `  `    ``// Function to calculate the maximum power of the jump ` `    ``public` `static` `int` `powerOfJump(String s) ` `    ``{ ` `        ``// Initialize the count with 1 ` `        ``int` `count = ``1``; ` `        ``int` `max_so_far = Integer.MIN_VALUE; ` ` `  `        ``// Find the character at last index ` `        ``char` `ch = s.charAt(s.length() - ``1``); ` ` `  `        ``// Start traversing the string ` `        ``for` `(``int` `i = ``0``; i < s.length(); i++) { ` ` `  `           ``// Check if the current char is equal ` `           ``// to the last character ` `            ``if` `(s.charAt(i) == ch) { ` ` `  `                ``// max_so_far stores maximum value of ` `                ``// the power of the jump from starting ` `                ``// to ith position ` `                ``if` `(count > max_so_far) { ` `                    ``max_so_far = count; ` `                ``} ` `                 `  `                ``// Reset the count to 1 ` `                ``count = ``1``; ` `            ``} ` ` `  `            ``// Else, increment the number of jumps/count ` `            ``else` `                ``count++; ` `        ``} ` ` `  `        ``// Return the maximum number of jumps ` `        ``return` `max_so_far; ` `    ``} ` `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``String st = ``"1010101"``; ` `        ``System.out.println(powerOfJump(st)); ` `    ``} ` `} `

## Python3

 `# Python3 programme to calculate  ` `# power of jump  ` ` `  `# Function to calculate the maximum  ` `# power of the jump  ` `def` `powerOfJump(s):  ` ` `  `    ``# Initialize the count with 1  ` `    ``count ``=` `1` `    ``max_so_far ``=` `0` `     `  `    ``# Find the character at last index  ` `    ``ch ``=` `s[``-``1``]  ` `     `  `    ``# Start traversing the string  ` `    ``for` `i ``in` `range``(``0``, ``len``(s)):  ` `     `  `        ``# Check if the current char is  ` `        ``# equal to the last character  ` `        ``if` `s[i] ``=``=` `ch: ` `         `  `            ``# max_so_far stores maximum value of  ` `            ``# the power of the jump from starting  ` `            ``# to ith position  ` `            ``if` `count > max_so_far:  ` `                ``max_so_far ``=` `count  ` `             `  `            ``# Reset the count to 1  ` `            ``count ``=` `1` `         `  `        ``# Else, increment the number  ` `        ``# of jumps/count  ` `        ``else``: ` `            ``count ``+``=` `1` `     `  `    ``# Return the maximum number of jumps  ` `    ``return` `max_so_far  ` ` `  `# Driver Code ` `if` `__name__ ``=``=` `"__main__"``: ` ` `  `    ``st ``=` `"1010101"` `    ``print``(powerOfJump(st))  ` `     `  `# This code is contributed  ` `# by Rituraj Jain `

## C#

 `// C# programme to calculate  ` `// power of jump ` `using` `System; ` ` `  `class` `GFG ` `{ ` ` `  `// Function to calculate the ` `// maximum power of the jump ` `public` `static` `int` `powerOfJump(String s) ` `{ ` `    ``// Initialize the count with 1 ` `    ``int` `count = 1; ` `    ``int` `max_so_far = ``int``.MinValue; ` ` `  `    ``// Find the character at last index ` `    ``char` `ch = s[s.Length - 1]; ` ` `  `    ``// Start traversing the string ` `    ``for` `(``int` `i = 0; i < s.Length; i++)  ` `    ``{ ` ` `  `    ``// Check if the current char is ` `    ``// equal to the last character ` `        ``if` `(s[i] == ch)  ` `        ``{ ` ` `  `            ``// max_so_far stores maximum value  ` `            ``// of the power of the jump from  ` `            ``// starting to ith position ` `            ``if` `(count > max_so_far)  ` `            ``{ ` `                ``max_so_far = count; ` `            ``} ` `             `  `            ``// Reset the count to 1 ` `            ``count = 1; ` `        ``} ` ` `  `        ``// Else, increment the number ` `        ``// of jumps/count ` `        ``else` `            ``count++; ` `    ``} ` ` `  `    ``// Return the maximum number of jumps ` `    ``return` `max_so_far; ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main() ` `{ ` `    ``String st = ``"1010101"``; ` `    ``Console.WriteLine(powerOfJump(st)); ` `} ` `} ` ` `  `// This code is contributed  ` `// by Akanksha Rai(Abby_akku) `

## PHP

 ` ``\$max_so_far``) ` `            ``{  ` `                ``\$max_so_far` `= ``\$count``;     ` `            ``}  ` `             `  `            ``// Reset the count to 1  ` `            ``\$count` `= 1;  ` `             `  `        ``}  ` `         `  `        ``// Else, increment the number  ` `        ``// of jumps/count  ` `        ``else` `        ``\$count``++;  ` `    ``}  ` `     `  `    ``// Return the maximum number  ` `    ``// of jumps  ` `    ``return` `\$max_so_far``;  ` `}  ` ` `  `// Driver code  ` `\$st` `= ``"1010101"``;  ` `echo` `powerOfJump(``\$st``);  ` `     `  `// This code is contributed by ajit ` `?> `

Output:

```2
```

Time Complexity : O(n) where n is the length of the string

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

2

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.