杭电oj1004

题目就不po了。。

po一下代码好了,我感觉我的做法特别复杂,可能比较暴力吧。。

#include <iostream>
#include <string>//自己的编译软件不需要这行,杭电的编译器是什么我很想弄懂
using namespace std;
int main()
{
	int a;
	while(cin>>a)
	{
	    if(a==0)
        {

        }
        else
        {
        const int m=a;
		string p[1000];//string p[m] 在自己的编译软件上是没有问题的
		int q[1000];//但是最近做的题目吧好像杭电oj都不太接受这个写法
		for(int i=0;i<m;i++)
		{
			cin>>p[i];
			q[i]=0;

		}
		for(int i=0;i<m;i++)
        {
            for(int j=0;j<m;j++)
			{
				if(p[i]==p[j])
				{
					q[j]++;
				}
			}
        }
			//cout<<q[0]<<endl<<q[1]<<endl<<q[2]<<endl;
			int max=0;
			for(int i=0;i<m;i++)
			{
				if(q[max]<q[i])
				{
					max=i;
				}
			}
			cout<<p[max]<<endl;
        }

	}
	return 0;
}

这里有关设定数组的问题。。之前很头疼来着,还好这个题目的设定不大,我直接给了1000的长度,也没有超过时间或者有错,假如是10000呢,或者更大呢?之前做1003还是1002就有这个问题,存着,以后明白了就更

还有一个问题是,做完了之后我在想我好像没有考虑假如个数相同输出谁,网上有人说是输出更早输入的这个

总的来说这题比较简单吧。。对小白比较友好,我觉得比较让我费脑子的是通过比较找到出现次数最多的字符串的那个循环

猜你喜欢

转载自blog.csdn.net/qq_42770849/article/details/81212959