测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A31693. 字母去重排序在一列表中产生n个大写字母,删除其中重复字母,并按照A到Z顺序排列输出。同时输出删除字母个数。例如输入 5 随机产生原始字母:[ "D","H","K","E","H"] 输出:去重后字母排序:["D","E","H","K"] 输出:共删除字母个数:1个。请编写程序实现上述功能,或补全代码。import random#导入随机数模块maxn=int(input("输入生成大写字母个…

填空题 中等

题目描述

字母去重排序

在一列表中产生n个大写字母,删除其中重复字母,并按照A到Z顺序排列输出。同时输出删除字母个数。

例如输入 5  随机产生原始字母:[ "D","H","K","E","H"]   输出:去重后字母排序:["D","E","H","K"]  输出:共删除字母个数:1个。

请编写程序实现上述功能,或补全代码。

import random

#导入随机数模块

maxn=int(input("输入生成大写字母个数"))

a=[ ]

for i in range(maxn):

    c=random.randint(1,26)#随机产生1-26之间的整数

    numb=chr(64+c)

           ①        

print("随机产生原始字母:",a)

m,n=0,maxn

while m<n:

    i=n-1

    while        ②        :

        i=i-1

    if i==m:

               ③        

    else:

        a.remove(a[i])

        n=n-1

for i in range(n):

    for j in range(len(a)-1,i,-1):

        if a[j]<a[j-1]:

                   ④        

print("去重后字母排序:",a)

print("共删除字母个数:",        ⑤        ,"个")

参考答案

import random maxn=int(input("输入生成大写字母个数")) a=[ ] for i in range(maxn): c=random.randint(1,26) numb=chr(64+c) a.append(numb) print("随机产生原始字母:",a) m,n=0,maxn while m<n: i=n-1 while a[i]!=a[m]: i=i-1 if i==m: m=m+1 else: a.remove(a[i]) n=n-1 for i in range(n): for j in range(len(a)-1,i,-1): if a[j]<a[j-1]: a[j],a[j-1]=a[j-1],a[j] print("去重后字母排序:",a) print("共删除字母个数:",maxn-n,"个")

答案解析

试题解析

(1)a.append(numb) 或等效答案;(3分)

(2)a[i]!=a[m] 或等效答案;(4分)

(3)m=m+1 或等效答案;(3分)

(4)a[j],a[j-1]=a[j-1],a[j] 或等效答案;(3分)

(5)maxn-n 或等效答案。(3分)

上一题 下一题