Remove Zeroes in java

Remove Zeroes in java

You are given a string s. Each character is either 0 or 1.

You want all 1s in the string to form a contiguous subsegment. For example, if the string is 0, 1, 00111 or 01111100, then all ones (1) form a contiguous subsegment, and if the string is 0101, 100001 or 11111111111101, then this condition is not met.

You may erase some (possibly none) zeroes(0) from the string. What is the minimum number of zeros (0) that you have to erase?

Input Format

The first line contains one integer t (1≤t≤100) — the number of test cases.

Then t lines follow, each representing a test case. Each line contains one string s (1≤|s|≤100); each character of s is either 0 or 1.

Output Format

Print t integers, where the i-th integer is the answer to the i-th testcase (the minimum number of zeros(0) that you have to erase from s).

Example 1

Input

3
010011
0
1111000

Output

2
0
0

Explanation

In the first test case you have to delete the third and forth symbols from string 010011 (it turns into 0111).

Example 2

Input

1
010101

Output

2

Explanation

Need to remove zero at index 2 and index 4.

Constraints

1<=t<=10^4 `1<=s.length<=10^41

Solution of Remove Zeroes in java:–

import java.util.*;
import java.lang.*;
import java.io.*;
 
public class Main
{
    public static void main (String[] args) throws java.lang.Exception
    {
        //your code here
      Scanner sc=new Scanner(System.in);
        int t=sc.nextInt(); //number of testcases.
        String s=" ";
      
        for(int i=1;i<=t;i++)
        {
          s=sc.next();
          char[] ch=s.toCharArray();
          
          int count=0;
          int pt1=0;
          int pt2=0;
          
          for(int j=0;j<ch.length;j++){ ///searching for 1st "1" from the beginning 
            if(ch[j]=='1'){
              pt1=j;
              break;
            } 
          }
          
          for(int j=ch.length-1;j>pt1;j--){ //searching for 1st "1" from the end
            if(ch[j]=='1'){
              pt2=j;
              break;
            }
          }
          
          ///after searching for "1" from beginnig and end ,
          ///then search for zeros in between them.
          for(int j=pt1;j<pt2;j++){
            if(ch[j]=='0'){
              count++;
            }
          }
          System.out.println(count);
      }
}}

Add a Comment

Your email address will not be published. Required fields are marked *