L2-050懂蛇语c++(pta天梯赛。测试点1。)

这个题目看上去还挺简单的,但是自己做的时候就超时了一开始只有19分。

我自己stl学的不是很好,然后一开始自己用的pair和vector一起写的发现了一些小问题改了之后才得19。。。其中两个就是超时问题。可能查找太慢?之后又查看了一些别人写的,参考了使用map和vector混用的方法就很好过了,但是那个测试点1就是过不了。最后,我发现就是首字的处理方式应该优化。一个小小小坑。大家注意。

#include
using namespace std;
map> cnt;
int main()
{
	int n,m;
	cin>>n;
	getchar();
	for(int i=0;i0&&s[j-1]==' ')&&s[j]!=' ')//就是这里,之前写的是if(j==0||j>0&&s[j-1]==' '&&s[j]!=' '),没有排除首字符为空格的情况
			{
				st+=s[j];
			}
		}
		cnt[st].push_back(s);
	}
	for(auto &u:cnt)
	{
		sort(u.second.begin(),u.second.end());
	}
	cin>>m;
	getchar();
	for(int i=0;i0&&s0[j-1]==' '&&s0[j]!=' ')
			{
				st0+=s0[j];
			}
		}
		if(cnt[st0].size()==0)cout<

希望大家指正!

你可能感兴趣的:(c++)