1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Fri Mar  3 20:07:11 2017
  4. @author: zzpp220
  5. """
  6. class Morethanhalf:
  7.    def findhalf(self,lst):
  8.        if not lst:
  9.            return None
  10.        
  11.        dict={}
  12.        half=[]        
  13.        for i in lst:
  14.            dict[i]=lst.count(i)
  15.        half=[k for k ,v in dict.iteritems() if v >=len(lst)//2]
  16.        return half
  17.        
  18.    def CheckMoreThanHalf(self, numbers, length, number):
  19.        times = 0
  20.        for i in range(length):
  21.            if numbers[i] == number:
  22.                times += 1
  23.        if times*2 <= length:
  24.            return False
  25.        return True
  26.        
  27.    def MoreThanHalfNum(self, numbers):
  28.        
  29.        if numbers == None :
  30.            return 0
  31.        length = len(numbers)    
  32.        result = numbers[0]
  33.        times = 1
  34.        for i in range(1, length):
  35.            if times == 0:
  36.                result = numbers[i]
  37.                times = 1
  38.            elif numbers[i] == result:
  39.                times += 1
  40.            else:
  41.                times -= 1
  42.        if not self.CheckMoreThanHalf(numbers, length, result):
  43.            result = 0
  44.        return result
  45. solution=Morethanhalf()
  46. lst=None#[1]#[1,2,6,14,4,4,3]
  47. print solution.findhalf(lst)
  48. print solution.MoreThanHalfNum(lst)


附件列表

     

    posted on 2017-03-03 21:41  zx0801  阅读(215)  评论(0编辑  收藏  举报