杭电OJ2072 help为什么wa 30
#include<iostream>#include<string>#include<map>usingnamespacestd;intmain(){stringstr;...
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main()
{
string str;
map<string,int> ma;
while(1)
{
while(cin>>str&&str != "#")
{
ma[str];
if(cin.get()=='\n')
break;
}
if(str == "#")
break;
cout<<ma.size()<<endl;
ma.clear();
}
}
http://acm.hdu.edu.cn/showproblem.php?pid=2072题目地址
我想知道,为什么这个题目是错的- -,给点提示吧。。。要AC的代码,网上一搜一大把的说。。。 展开
#include<string>
#include<map>
using namespace std;
int main()
{
string str;
map<string,int> ma;
while(1)
{
while(cin>>str&&str != "#")
{
ma[str];
if(cin.get()=='\n')
break;
}
if(str == "#")
break;
cout<<ma.size()<<endl;
ma.clear();
}
}
http://acm.hdu.edu.cn/showproblem.php?pid=2072题目地址
我想知道,为什么这个题目是错的- -,给点提示吧。。。要AC的代码,网上一搜一大把的说。。。 展开
3个回答
展开全部
比如这样一组测试数据(下划线表示空格)
me_me_
你的程序就没办法判定, 因为对于每埋森行最弯春亩后一个单词,如果他最后还有个空格什么的, 你就要判断出错了, 会继续把下一行的单词读进来
正确做法应该是一行一行读, 然后对于森山每一行单独扫描
me_me_
你的程序就没办法判定, 因为对于每埋森行最弯春亩后一个单词,如果他最后还有个空格什么的, 你就要判断出错了, 会继续把下一行的单词读进来
正确做法应该是一行一行读, 然后对于森山每一行单独扫描
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
AC代码:
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main()
{
char sh[1000],ch[1000];
int i,j,l,m,n;
int k;
set<string> st;
gets(sh);
while(sh[0]!='#')
{
l=strlen(sh);
for(i=0,k=0;i<l;i++)
{
if(sh[i]!=' ')
{
ch[k]=sh[i];
k++;
}
else
{
ch[k]='\0';
st.insert(ch);
k=0;
}
}
st.insert(ch);
m=st.size ();
cout<<m<<endl;
st.clear();
gets(sh);
}
return 0;
}
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main()
{
char sh[1000],ch[1000];
int i,j,l,m,n;
int k;
set<string> st;
gets(sh);
while(sh[0]!='#')
{
l=strlen(sh);
for(i=0,k=0;i<l;i++)
{
if(sh[i]!=' ')
{
ch[k]=sh[i];
k++;
}
else
{
ch[k]='\0';
st.insert(ch);
k=0;
}
}
st.insert(ch);
m=st.size ();
cout<<m<<endl;
st.clear();
gets(sh);
}
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询