Aquí la cadena consta de 0 y 1 solamente.
Si la cadena consta de solo 0s, entonces podemos tomar solo s1 = “0” y s2 como cadena nula.
por lo tanto p1 + p2 = 1.
Si la cadena s consta de solo 1, entonces podemos tomar solo s1 = “1” y s2 cadena asnula.
por lo tanto p1 + p2 = 1.
Si s consta de s1 y s2, uno de ellos debe ser “1” y el otro “0”.
Por lo tanto, p1 + p2 = 2.
La respuesta nunca puede ser mayor que 2 porque de todos modos podemos romper la cadena en dos subcadenas que consisten en “0” y “1”.
Aquí está mi código aceptado
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#incluye
#include
#include
#include
#include
#include
#include
#include
usando el espacio de nombres estándar;
typedef largo largo LL;
typedef par pii;
- ¿Cuáles son las diferencias entre las estructuras de datos y los algoritmos?
- ¿Cuáles son algunas de las mejores grandes empresas y startups para trabajar en Silicon Valley si te apasionan los algoritmos y la codificación?
- ¿Cuáles son las aplicaciones de la estructura de datos en C?
- ¿Qué algoritmo de extracción de características es adecuado para el reconocimiento facial basado en video?
- ¿Cuál es la principal ventaja de utilizar la búsqueda de profundización iterativa en comparación con la búsqueda de amplitud primero?
#definir forup (i, a, b) para (int i = a; i <b; ++ i)
#define fordn (i, a, b) for (int i = a; i> b; –i)
#define rep (i, a) para (int i = 0; i <a; ++ i)
#define dforup (i, a, b) para (i = a; i <b; ++ i)
#define dfordn (i, a, b) para (i = a; i> b; –i)
#define drep (i, a) para (i = 0; i <a; ++ i)
#definir slenn (s, n) para (n = 0; s [n]! = ‘\ 0’; ++ n)
#define gi (x) scanf (“% d”, & x)
#define gl (x) cin >> x
#define gd (x) scanf (“% lf”, & x)
#define gs (x) scanf (“% s”, x)
#define pis (x) printf (“% d”, x)
#definir pin (x) printf (“% d \ n”, x)
#define pls (x) cout << x << ""
#define pln (x) cout << x << "\ n"
#define pds (x) printf (“%. 12f”, x)
#define pdn (x) printf (“%. 12f \ n”, x)
#define pnl () printf (“\ n”)
#define fs primero
#define sc second
#define pb push_back
# define max_int 1000000
int main ()
{
int t;
scanf (“% d”, & t);
mientras que (t–)
{
cuerda s;
cin >> s;
int i, n = s.size (), cnt0 = 0, cnt1 = 0;
para (i = 0; i <n; i ++)
{
if (s [i] == ‘0’) cnt0 ++;
de lo contrario, cnt1 ++;
}
if (cnt0 == 0 && cnt1 == 0) cout << 0 << endl;
si no (cnt0 == 0 || cnt1 == 0) cout << 1 << endl;
sino cout << 2 << endl;
}
devuelve 0;
}