# -*- coding: utf-8 -*-"""Created on Fri Mar 3 20:07:11 2017@author: zzpp220"""class Morethanhalf:def findhalf(self,lst):if not lst:return Nonedict={}half=[]for i in lst:dict[i]=lst.count(i)half=[k for k ,v in dict.iteritems() if v >=len(lst)//2]return halfdef CheckMoreThanHalf(self, numbers, length, number):times = 0for i in range(length):if numbers[i] == number:times += 1if times*2 <= length:return Falsereturn Truedef MoreThanHalfNum(self, numbers):if numbers == None :return 0length = len(numbers)result = numbers[0]times = 1for i in range(1, length):if times == 0:result = numbers[i]times = 1elif numbers[i] == result:times += 1else:times -= 1if not self.CheckMoreThanHalf(numbers, length, result):result = 0return resultsolution=Morethanhalf()lst=None#[1]#[1,2,6,14,4,4,3]print solution.findhalf(lst)print solution.MoreThanHalfNum(lst)
原文:http://www.cnblogs.com/zzxx-myblog/p/6498554.html