输入包含多组数据,每组数据包含一个字符串s。
s仅包含数字,长度不超过100。
对应每一组数据,依次为十种产品绘制高度等于其销量的“*”柱图。
直方图的高度等于数据中数量最多产品的个数,如果某种产品高度不到直方图的高度,用空格补全。
直方图下方依次输出0到9作为坐标。
0123456789123 123012312
*** ********** 0123456789 ** *** **** 0123456789
num = input() temp = str(num) count = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for i in temp: if i == "0": count[0] += 1 elif i == "1": count[1] += 1 elif i == "2": count[2] += 1 elif i == "3": count[3] += 1 elif i == "4": count[4] += 1 elif i == "5": count[5] += 1 elif i == "6": count[6] += 1 elif i == "7": count[7] += 1 elif i == "8": count[8] += 1 elif i == "9": count[9] += 1 maxV = max(count) for i in range(maxV): for j in range(10): if count[j] < (maxV - i): print(" ", end='') else: print("*", end='') print("") print("0123456789")为啥自己在VScode中运行这个代码完全没问题,而上传后直接说答案错误?还请大神排忧解难😭
import sys from collections import Counter #从上到下输出直方图 def printHistogram(string): c = Counter(string) height = c.most_common(1)[0][1] for i in range(0, height): layer = "" #每一层的字符串 for num in "0123456789": if c[num] + i >= height: #这个if else是核心逻辑 layer += "*" else: layer += " " print (layer) print("0123456789") for i in sys.stdin.readlines(): printHistogram(i)