def countFreNum(targetList):
"""
獲取list中重復次數(shù)最多的一個數(shù)
方案:通過遍歷list,將list元素添加到dict中的key,重復次數(shù)作為value,對value做排序找出重復次數(shù)最多的元素
:param targetList: 入?yún)? :return:
"""
#
if not isinstance(targetList, list):
return "目標內(nèi)容非list"
if len(targetList) == 0:
return "目標list內(nèi)容為空"
# 保存統(tǒng)計結(jié)果到dict中
res = {}
for i in targetList:
if i in res.keys():
res[i] = res[i] + 1
else:
res[i] = 1
print (res)
# 將dict中value轉(zhuǎn)為list 遍歷list排序
valueList = list(res.values())
for li in range(len(valueList) - 1):
for lj in range(li+1, len(valueList)):
if valueList[li] <= valueList[lj]:
valueList[li], valueList[lj] = valueList[lj], valueList[li]
print(valueList)
# 取最大的value值 遍歷dict取key值 出現(xiàn)次數(shù)最多的數(shù),可能不止一個
freNum =[]
for k, v in res.items():
if v == valueList[0]:
freNum.append(k)
print("重復出現(xiàn)次數(shù)最多的數(shù):" + ', '.join(str(i) for i in freNum) + ", 重復出現(xiàn)" + str(valueList[0]) + "次")
return freNum
def minNum(num):
"""
獲取輸入?yún)?shù)的最小不重復數(shù)
不重復數(shù)定義:每一位上的數(shù)與相鄰的兩個數(shù)都不相等
方案: 遍歷一個數(shù)字所有位上的數(shù),如果出現(xiàn)任意一個兩個相鄰的數(shù)相等即不是要找的數(shù)
:param num: 原數(shù)據(jù)
:return: 不重復數(shù)
"""
if not isinstance(num, int):
return "目標內(nèi)容非整數(shù)數(shù)值"
if num < 10:
return num
tag = True
while tag:
num = num + 1
numStr = str(num)
count = 0
for i in range(0, len(numStr)-1):
if numStr[i] == numStr[i+1]:
count = count + 1
if count == 0:
break
print(num)
return num