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

      

  • 相关阅读:
    win10安装mysql5.7.20解压版
    mvn snapshot
    git SSH key
    Grails踩坑记
    oracle数据库中使用hibernate生成表不能正确创建表
    有些人
    制定短期计划(3月9-4.29)
    有些话
    Linux中mysql主从复制
    Linux下安装mysql
  • 原文地址:https://www.cnblogs.com/lautsie/p/3886410.html
Copyright © 2011-2022 走看看