Input
The input file is a text with no more than 5000 lines. An input line has at most 200 characters. Inputis terminated by EOF.
Output
Your output should give a list of different words that appears in the input text, one in a line. Thewords should all be in lower case, sorted in alphabetical order. You can be sure that he number ofdistinct words in the text does not exceed 5000.
Sample
InputAdventures in DisneylandTwo blondes were going to Disneyland when they came to a fork in theroad. The sign read: "Disneyland Left."So they went home.
Sample Input
Adventures in DisneylandTwo blondes were going to Disneyland when they came to a fork in theroad. The sign read: "Disneyland Left."So they went home.
Sample Outp
ut
aadventuresblondescamedisneylandforkgoinghomeinleftreadroadsignsothetheytotwowentwerewhen
想法:上次代码队友写的,今天自己写下
代码:
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<map>
using namespace std;
char s[50100][10010];
struct node
{
char ws[1010];
}w[50100];
bool cmp(node x,node y)
{
return strcmp(x.ws,y.ws)<0;
}
int main()
{
int i,j;
int count=0;
while(gets(s[count]))
{
//strlwr(s[count]);
//puts(s[count]);
for(i=0;i<strlen(s[count]);i++)
{
if(s[count][i]>='A'&&s[count][i]<='Z')
s[count][i]=s[count][i]-'A'+'a';
}
count++;
}
int flag=0;
int k=0,l=0;
for(i=0;i<count;i++)
{
for(j=0;j<strlen(s[i]);j++)
{
if(s[i][j]==' ')
{
flag=1;
}
if(s[i][j]>='a'&&s[i][j]<='z')
{
w[k].ws[l++]=s[i][j];
}
if(s[i][j]>='a'&&s[i][j]<='z'&&(s[i][j+1]<'a'||s[i][j+1]>'z'))
{ // printf("%d %s \n ",k,w[k].ws);
k++;l=0;
}
}
}
/*for(i=0;i<k;i++)
{
puts(w[i].ws);
}*/
sort(w,w+k,cmp);
for(i=0;i<k;i++)
{
if(strcmp(w[i].ws,w[i+1].ws)!=0)
{
printf("%s\n",w[i].ws);
}
}
return 0;
}
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<map>
using namespace std;
char s[50100][10010];
struct node
{
char ws[1010];
}w[50100];
bool cmp(node x,node y)
{
return strcmp(x.ws,y.ws)<0;
}
int main()
{
int i,j;
int count=0;
while(gets(s[count]))
{
//strlwr(s[count]);
//puts(s[count]);
for(i=0;i<strlen(s[count]);i++)
{
if(s[count][i]>='A'&&s[count][i]<='Z')
s[count][i]=s[count][i]-'A'+'a';
}
count++;
}
int flag=0;
int k=0,l=0;
for(i=0;i<count;i++)
{
for(j=0;j<strlen(s[i]);j++)
{
if(s[i][j]==' ')
{
flag=1;
}
if(s[i][j]>='a'&&s[i][j]<='z')
{
w[k].ws[l++]=s[i][j];
}
if(s[i][j]>='a'&&s[i][j]<='z'&&(s[i][j+1]<'a'||s[i][j+1]>'z'))
{ // printf("%d %s \n ",k,w[k].ws);
k++;l=0;
}
}
}
/*for(i=0;i<k;i++)
{
puts(w[i].ws);
}*/
sort(w,w+k,cmp);
for(i=0;i<k;i++)
{
if(strcmp(w[i].ws,w[i+1].ws)!=0)
{
printf("%s\n",w[i].ws);
}
}
return 0;
}