1、给你一个原始字符串,根据该字符串内每个字符出现的次数,按照ASCII码递增顺序重新调整输出。
举例!假设原始字符串为:eeefgghhh
则每种字符出现的次数分别是:
(1).eee 3次
(2).f 1次
(3).gg 2次
(4).hhh 3次
重排输出后的字符串如下:
efghegheh
编写程序,实现上述功能。
(1).原始字符串中仅可能出现“数字”和“字母”;
(2).请注意区分字母大小写。
import sys #a='eeefgghhhA0' a=sys.stdin.readline().strip() if a.isalnum()!=True: exit d={} l=[] for i in range(len(a)): if a[i] not in d: d[a[i]]=1 l.append(a[i]) else: d[a[i]]=d[a[i]]+1 maxnum=0 l2=[] for j in range(len(l)): l2.append(d[sorted(l)[j]]) maxnum=sorted(l2)[-1] c='' for m in range(maxnum): for n in range(len(l)): if d[sorted(l)[n]]==0: continue else: c=c+sorted(l)[n] d[sorted(l)[n]]-=1 print c
2、题目描述
给出一组正整数,你从第一个数向最后一个数方向跳跃,每次至少跳跃1格,每个数的值表示你从这个位置可以跳跃的最大长度。计算如何以最少的跳跃次数跳到最后一个数。
输入描述:
第一行表示有多少个数n
第二行开始依次是1到n个数,一个数一行
输出描述:
输出一行,表示最少跳跃的次数。
示例1
输入
7
2
3
2
1
2
1
5
输出
3
n=7 l1=[2,3,2,1,2,1,5] count=0 flag=True i=0 while flag: print i#表示当前位置 l2=[] maxnum=0 for j in range(1,l1[i]+1): if (i+j)<len(l1): if maxnum<=l1[i+j]: maxnum=l1[i+j] l2.append(l1[i+j]) m=0 for index,value in enumerate(l2):#这个函数可以知道列表的索引和值 if maxnum==value: if m<index: m=index i=i+m+1 if i>=len(l1)-1: flag=False count+=1 print count3、输入描述:
第一行输入数字A的字符串,字符范围(0~9),第二行输入数字B的字符串,字符范围(0~9)。
输出描述:
输出A、B俩数相乘的结果,结果为字符串。
示例1
输入
1234
4321
输出
5332114
import sys a = sys.stdin.readline().strip() b = sys.stdin.readline().strip() return str(int(a)*int(b))