Minimum number of insertions in given String to remove adjacent duplicates
Last Updated :
21 Jan, 2022
Given a string str of size N, the task is to find the minimum number of additions in the string such that no two consecutive elements are the same.
Examples:
Input: str=”rrg”
Output: 1
Explanation: Add an element between two r’s
Input: str=”rrrrr”
Output: 4
Approach: The above problem can be solved using the below given steps:
- Declare variable min_steps and initialise it by 0.
- Traverse the string using a for-loop from i=0 to i<N.
- Check if the current character is the same as the character before it.
- If yes, then increment min_steps by 1.
- Else, continue the loop.
- Print min_steps as the answer.
Below is the implementation of the above approach:
C++
#include <iostream>
using namespace std;
int minAdditions(string str)
{
int len = str.size();
int min_steps = 0;
int i;
for (i = 1; i < len; i++) {
if (str[i] == str[i - 1])
min_steps++;
}
return min_steps;
}
int main()
{
string str = "RRG" ;
cout << minAdditions(str);
return 0;
}
|
Java
import java.util.*;
public class GFG {
static int minAdditions(String str)
{
int len = str.length();
int min_steps = 0 ;
int i;
for (i = 1 ; i < len; i++) {
if (str.charAt(i) == str.charAt(i - 1 ))
min_steps++;
}
return min_steps;
}
public static void main(String args[])
{
String str = "RRG" ;
System.out.println(minAdditions(str));
}
}
|
Python3
def minAdditions( str ):
le = len ( str )
min_steps = 0
for i in range ( 1 , le):
if ( str [i] = = str [i - 1 ]):
min_steps + = 1
return min_steps
if __name__ = = "__main__" :
str = "RRG"
print (minAdditions( str ))
|
C#
using System;
class GFG {
static int minAdditions( string str)
{
int len = str.Length;
int min_steps = 0;
int i;
for (i = 1; i < len; i++) {
if (str[i] == str[i - 1])
min_steps++;
}
return min_steps;
}
public static void Main()
{
string str = "RRG" ;
Console.Write(minAdditions(str));
}
}
|
Javascript
<script>
function minAdditions(str)
{
let len = str.length;
let min_steps = 0;
let i;
for (i = 1; i < len; i++) {
if (str[i] == str[i - 1])
min_steps++;
}
return min_steps;
}
let str = "RRG" ;
document.write(minAdditions(str))
</script>
|
Time Complexity: O(N)
Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...