zoukankan      html  css  js  c++  java
  • [topcoder]HappyLetterDiv2

    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 '.';
    	}
    };
    

      

  • 相关阅读:
    GUI常用监听事件
    GUI容器之布局管理器
    布局管理器的综合应用
    GUI容器之Panel
    mongodb
    redis持久化
    本地window启动redis
    redis主从模式
    hash 哈希
    set集合
  • 原文地址:https://www.cnblogs.com/lautsie/p/3886410.html
Copyright © 2011-2022 走看看