python: 求一个数字中出现频率最高的数。 例如:longestDigitRun(11777332) return 7 c语言:定义一个函数digit(n,k),它返回整数n的从右...
python\u5982\u4f55\u7edf\u8ba1\u5b57\u7b26\u4e2d\u6709\u591a\u5c11\u6570\u5b57\u4f8b\u5982123abc\u4e2d\u67093\u4e2a\u6570\u5b57def count_digits(s):
return len([i for i in s if i.isdigit()])
def count_digits2(s):
return map(str.isdigit ,s).count(True)
s='a1b2c345'
print count_digits(s)
print count_digits2(s)
#include "stdio.h"
int digit(int n,int k)
{
while(k>1)
{
n/=10;
k--;
}
return n%10;
}
void main()
{
printf("%d\n%d\n",digit(1234,3),digit(6754,4));
}
mydic = {}
getkey = ''
mylist =[]
in_str = input('input your number: ')
for evestr in in_str:
myitem = in_str.count(evestr)
mydic[evestr] = myitem
for k in mydic.keys():
if mydic[k] == max(mydic.values()):
mylist.append(k)
print(list(set(mylist)))
def longestDigitRun(num):
a = str(num)
return int(reduce(lambda x,y: x if a.count(x) > a.count(y) else y,set(a)))
print longestDigitRun(11777332)
把 int 转化成 str 就很好处理了,python对字符串的操作非常强大。
from collections import Counter
def longestDigitRun(num):
return int(Counter(str(num)).most_common(1)[0][0])
print longestDigitRun(11777332)
注意这个假设你的python版本是2.7
def longestDigitRun(arg):
strarg = str(arg)
v = 0
for i in range(10):
u = 0
for j in range(len(strarg)):
if i == int(strarg[j]):
u = u+1
if u > v:
v = u
k = i
print(i,v)
return(k)
print(longestDigitRun(17777733321))
凑合一下能用。试试看。
def longestDigitRun(number):
number = str(number)
count = [0,0,0,0,0,0,0,0,0,0]
for d in number:
count[int(d)] = count[int(d)] + 1
max = 0
index = -1
i = 0
for n in count:
if max < n:
max = n
index = i
i = i + 1
return index
print longestDigitRun(11777332)
扩展阅读:python四个数字排列组合 ... python数字0-10转汉字 ... 用python求两个数字的和 ... python编程 ... python 判断是否为数字 ... python代码大全 ... python列表数字求和 ... python 判断纯数字 ... python输出如下数字金字塔 ...