一、数组与链表
6881: 生产数据合并
生产厂家总会根据各地产品销量的数据来分析来预估市场情况,并为后续调整生产规划、完善营销策略提供依据。
由于数据量巨大,为了充分运用分布式处理的又是,总部会要求各下属地区上报数据时,按各产品销量进行从大到小的排序。
总部收到数据后的第一件事是将所有数据合并并按照销量进行降序排序(从大到小)。
各个地区的数据问题可以简化为2个地区的数据合并问题,当2个地区的数据合并完成后,剩余各地区的数据合并就可以按照同样方式完成。
现在第1个地区有n个产品销量数据,第2个地区有m个产品销量数据,请你完成对数据的合并。
函数和方法 | 功能 | 实例 |
---|---|---|
len(x) | 统计字符串x中个数 | list=[] print(len(list)) 输出为:0 |
list.append(x) | 在列表末尾添加元素x | list=[22,33,44] list.append(55) print(list) 输出为:[22,33,44,55] |
list.insert(i,x) | 在列表中下标为i位置处插入x | list=["A", "B", "D"] list.insert(2,"C") print(list) 输出为:["A", "B", "C", "D"] |
list.pop(i) | 将list中下标为i的元素删除;若i不指定,默认为-1,即最后一个 | list=["A", "B", "C", "D"] list.pop(2) print(list) 输出为:["A", "B", "D"] |
二、字符串、队列和栈
凯撒密码是一种简单的置换密码,通过换位来实现加密。
例如,密文字母表是由正常顺序的明文字母表右移3个字母得到的,如图所示。
加密过程可表示为Ci=Ek1(Pi)=(Pi+3)mod26,这里的密钥为3。
def change(code,key):
if ‘a‘<=code<=‘z‘:
m=ord(code)-ord(‘a‘)+key
return chr((m+26)%26+ord(‘a‘))
if ‘A‘<=code<=‘Z‘:
m=ord(code)-ord(‘A‘)+key
return chr((m+26)%26+ord(‘A‘))
return code
def encrypt(code,key):
code_new =""
for s in code:
code_new += change(s,key)
print(code_new)
return code_new
def decrypt(code,key):
code_new =""
for s in code:
code_new +=change(s,-key)
print(code_new)
return code_new
函数和方法 | 功能 | 实例 |
---|---|---|
len(x) | 统计字符串x中字符的个数 | x="Hello!" print(len(x)) 输出为:6 |
x.find(y) | 返回字符串x中子串y出现的首字母下标,若找不到,则输出-1 | x="Hello!" y="llo" print(x.find(y)) 输出为:2 |
x.split(str="", num=string.count(str)) | 以str分隔符切片x,如果num有指定值,那么仅分隔num个子串。切片得到的值存储在列表中 | x="I like Python" list=x.split() print(list) 输出: [‘I‘, ‘like‘, ‘Python‘] |
x.replace(old,new[,max]) | 返回字符串中的old(旧字符串)替换成new(新字符串)后生成的新字符串,如果指定第三个参数max,那么替换不超过max次 | x="is is is is" print(x.replace("is","was")) print(x.replace("is","was",3)) 输出: was was was was was was was is |
x.upper() | 把字符串x中的小写字母转换成大写字母 | x="I like Python" y=x.upper() print(y) 输出: I LIKE PYTHON |
x.lower() | 把字符串x中的大写字母转换成小写字母 | x="I like Python" y=x.lower() print(y) 输出: i like python |