寻找水王

题目:从发帖的目录中徐找出发帖数过半的“水王”

思路:由于水王的发帖数是总数的一半,所以需要遍历一遍发帖目录。用一个变量代表一个ID出现相同的次数,若下一个ID与上一个ID不同,则变量减一,反之加一;最后若变量大于零,则对应得ID就是水王,其中在变量小于等于零时,ID会变化(下面代码中的s)

代码:

#include<iostream>
#include<string>
using namespace std;

int main()  
{  
    string a[11]={"wshtl","乱清无","乱清无l","bingoing","乱清无","零夕","乱清无","主题远志","乱清无","wshtl ","乱清无"};
    int k= 0;
    int i;
    string std;
    for(i = 0; i < 11;i++)
    {
          if(k == 0)
          {
              std = a[i];
              k= 1;
          }
          else
          {
              if(std == a[i])
              {
                  k++;
              }
              else
              {
                  k--;
              }
          }
    }
	cout<<"id的名单:"<<"  ";
	 for(i = 0; i < 11;i++)
    {
		cout<<a[i]<<"  ";
	 }
	 cout<<endl;
    cout<<"水王的ID是"<<"  "; 
    cout<<std<<endl;
    return 0;  
} 

  

截图:

总结:做这道题时,需要家主题的关键点“水王的发帖数是总数的一半以上”,并且我们需要摆脱之前的思路(遍历一遍,算出每一个ID的次数,最后比较大小求出水王)。换一个思路,并不是数出来,而是相消。

 

posted @ 2015-05-16 22:21  乱——清——无  阅读(132)  评论(0编辑  收藏  举报