Acwing 771. Carácter consecutivo más largo en una cadena de doble puntero

Encuentre el carácter consecutivo más largo en una cadena y genere el carácter y su número de ocurrencias. No hay ningún carácter en blanco (espacio, retorno de carro y tabulación) en la cadena. Si hay más de uno de esos caracteres, genere el primero. .

formato de entrada

La primera línea ingresa un número entero N, que representa el número de grupos de datos de prueba.

Cada conjunto de datos ocupa una línea, contiene una cadena sin caracteres en blanco y la longitud de la cadena no supera los 200.

formato de salida

Un total de una línea, muestra los caracteres consecutivos más largos y sus ocurrencias, separados por espacios.

Muestra de entrada:

2
aaaaabbbbbcccccccdddddddddd
abcdefghigk

Salida de muestra:

d 10
a 1

Aritmética de doble puntero y aprendizaje total Y (doble puntero suena alto, pero en realidad no importa)

i como punto de partida, j comienza a atravesar desde i, y corre a la primera posición que no es igual a s[i]

Conocimiento fragmentado: no se permite nada entre dos comillas simples, por lo que los caracteres char deben agregar un espacio en el medio cuando se inicializan

#include <iostream>

using namespace std;

int main()
{
	int n;
	cin >> n;
	string s;
	char p ;
	while (n--)
	{
		cin >> s;
		int ans = 0;
		for (int i = 0;i<s.size();i++)
		{  
			int j = i;
			while (s[i]==s[j]&&j<s.size()) j++;
				if (j-i>ans)
				{
					ans = j-i;
					p = s[i];
				}
		}
		cout<<p<<" "<<ans<<endl;
	}
	
	
	return 0;
}

Venir a Japón para sentar una base sólida para los algoritmos y resolver problemas de algoritmos con calma también es una especie de alegría en la vida - Py Xiaozheng

Supongo que te gusta

Origin blog.csdn.net/m0_62277756/article/details/124437829
Recomendado
Clasificación