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.