STL conjunto de cuerdas

Entrenamiento 2 - Denominación E

Lily ha sido un muy buen amigo xiaoou333 vacía, él pensó que algo no tenía sentido de las cosas, es un artículo de la estadística del número total de palabras diferentes. A continuación xiaoou333 misión es ayudar a resolver este problema.

Entrada

Varios conjuntos de datos, cada línea, cada uno es un pequeño artículo. Cada pequeños artículos son letras minúsculas y espacios, sin puntuacion, # indica que se encuentra el final de la entrada.

Salida

Cada salida grupo solamente un número entero, que hacen el viaje solo, el número total de palabras diferentes en un artículo del representante número entero.

Ejemplo de entrada

eres mi amigo

Ejemplo de salida

4

#pragma warning (disable:4996)
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#define inf 0X3f3f3f3f
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 1e5 + 5;

set<string> s;

int main()
{
	string str;
	while (getline(cin, str) && str != "#")
	{
		s.clear();
		string tmp = "";
		s.insert(tmp);//防止有空输入
		for (int i = 0; str[i] != '\0'; i++)
		{
			if (str[i] == ' ')
			{
				s.insert(tmp);
				tmp = "";
			}
			else
				tmp += str[i];
		}
		s.insert(tmp);
		printf("%lld\n", (ll)s.size() - 1);
	}
	return 0;
}

Idea:
Cuando la cadena y la conversión de char, puede utilizar directamente el operador +.
Tenga en cuenta para determinar si la entrada libre.

Publicado 28 artículos originales · ganado elogios 0 · Vistas 332

Supongo que te gusta

Origin blog.csdn.net/xukeke12138/article/details/104640169
Recomendado
Clasificación