Problem Statement
Shashank likes strings in
which consecutive characters are different. For example, he likesABABA, while he doesn't like ABAA. Given a string containing characters A and B only,
he wants to change it into a string he likes. To do this, he is allowed to
delete the characters in the string.
Your task is to find the minimum number of required deletions.
Input Format
The first line contains an integer T, i.e. the number of test cases.
The next T lines contain a string each.
The next T lines contain a string each.
Output Format
For each test case, print the minimum number of deletions
required.
Constraints
1≤T≤10
1≤ length of string ≤105
1≤ length of string ≤105
Sample Input
5
AAAA
BBBBB
ABABABAB
BABABA
AAABBB
Sample Output
3
4
0
0
4
Explanation
AAAA ⟹ A, 3 deletions
BBBBB ⟹ B, 4 deletions
ABABABAB ⟹ ABABABAB, 0 deletions
BABABA ⟹ BABABA, 0 deletions
AAABBB ⟹ AB, 4 deletions because to convert it to AB we need to delete 2 A's and 2 B's
BBBBB ⟹ B, 4 deletions
ABABABAB ⟹ ABABABAB, 0 deletions
BABABA ⟹ BABABA, 0 deletions
AAABBB ⟹ AB, 4 deletions because to convert it to AB we need to delete 2 A's and 2 B's
import java.util.Scanner;
public class Solution {
static int
numOfDels(String inpStr){
char[]
chrArray=inpStr.toCharArray();
int
len=chrArray.length;
int
count=0;
for(int
i=0;i<len-1;i++){
if(chrArray[i]==chrArray[i+1]){
count++;
}
}
return
count;
}
public static void
main(String[] args) {
/* Enter your
code here. Read input from STDIN. Print output to STDOUT. Your class should be
named Solution. */
Scanner
scan=new Scanner(System.in);
int
n=scan.nextInt();
while(n>0){
String strInp=scan.next();
System.out.println(numOfDels(strInp));
}
//System.out.println(numOfDels(scan.nex());
}
}
Score: 30.00
Test Case #0: 0.09s
Test Case #1: 0.09s
Test Case #2: 0.09s
Test Case #3: 0.09s
Test Case #4: 0.14s
Test Case #5: 0.15s
Test Case #6: 0.14s
Test Case #7: 0.24s
Test Case #8: 0.23s
Test Case #9: 0.3s
Test Case #10: 0.3s
Test Case #11: 0.29s
Test Case #12: 0.28s
Comments
Post a Comment