[Reclutamiento de otoño de Ctrip] 230907 4. Cantidad de cadenas buenas <Simulación>

[Promoción de otoño de Ctrip] 230907 4. Cantidad de cuerdas buenas

Tengo una cadena que solo contiene '0' y '1'. Quiero saber cuántas subcadenas buenas tiene esta cadena.
Si una cadena es buena, entonces el número de '0's en todos los prefijos de la cadena es estrictamente mayor que el número de '1's.

Entrada:
una cadena que contiene solo '0' y '1', con una longitud que no excede 100000.

Salida:
un número entero que representa la respuesta.

ingresar:

100

producción

3

ilustrar

子区间[2,2][2,3][3,3]组成的子串都是一个好串。

ingresar:

10010

producción

6

ilustrar

子区间[2,2][2,3][3,3][2,4][2,5][5,5]组成的子串都是一个好串。

respuesta

Ejemplo:
Por ejemplo, 0011100
debería ser 1+2+1+0+0+1+2 = 7.
Encuentra la regla de la ecuación.

import java.util.*;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner in = new Scanner(System.in);
        String str = in.next();

        long curSum = 0;
        long count = 0;
        for (int i = 0; i < str.length(); i++) {
    
    
            //是0
            if (str.charAt(i) == '0') {
    
    
                curSum++;
            }
            //是1
            else {
    
    
                curSum--;
            }

            if (curSum >= 1) {
    
    
                count += curSum;
            } else {
    
    
                curSum = 0;
            }
        }
        System.out.println(count);

    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_44033208/article/details/132754052
Recomendado
Clasificación