码迷,mamicode.com
首页 > 移动开发 > 详细

[topcoder]HappyLetterDiv2

时间:2014-08-02 09:50:23      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:blog   http   for   ar   div   amp   size   log   

http://community.topcoder.com/stat?c=problem_statement&pm=13245

就是有字符串,里面的字符可以随意两两消除,如果不等的话,那么最后如果留下一个字符,这个字符就是winning letter。如果任意方法消除都是这个winning letter,叫做happy letter。求happy letter是否存在。题目其实就是找众数。要注意的是求完了还要扫一遍是不是大于length/2。

#include <string>

using namespace std;

class HappyLetterDiv2 {
public:
	char getHappyLetter(string letters)
	{
		char ch = letters[0];
		int count = 1;
		int n = letters.size();
		for (int i = 1; i < n; i++)
		{
			if (count > 0 && letters[i] != ch)
			{
				count--;
			}
			else // count == 0 || letters[i] == ch
			{
				count++;
				ch = letters[i];
			}
		}
		count = 0;
		for (int i = 0; i < n; i++)
		{
			if (letters[i] == ch)
				count++;
		}
		if (count > n / 2)
			return ch;
		else
			return ‘.‘;
	}
};

  

[topcoder]HappyLetterDiv2,布布扣,bubuko.com

[topcoder]HappyLetterDiv2

标签:blog   http   for   ar   div   amp   size   log   

原文地址:http://www.cnblogs.com/lautsie/p/3886410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!