【面试代码coding】

中国银行——输出pi前n个数字

import sys

pi = "3.1415926535897932384626"

if len(sys.argv) > 1:
    n = int(sys.argv[1])
else:  
    print("请从命令行输入一个整数n")  
    sys.exit(1)  
# 确保n不大于我们硬编码的π值的长度  
if n > len(pi_str) - 3:  # 减去3是因为我们包括了整数部分和小数点  
    print("n太大,超出了我们预定义的π值的长度")  
    sys.exit(1)  
pi_n = pi[:n]
print(pi_n)

中国银行——合并单链表

n=int(input())
w=list(map(int,input().split()))
l,r=0,0
res=[]
while l<n:
    r=l
    num=w[r]  #这一轮存入链表中的数字
    while r+1<n and w[r+1]==w[r]:
        num+=w[r]
        r+=1
    res.append(num)
    l=r+1
for x in res:
    print(x,end=' ')

中国银行——字符串排序

n = int(input())
cnts = {}  # 用于存储字符串及其出现次数
s=input().split()
for x in s:
    cnts[x] = cnts.get(x, 0) + 1  # 计算每个字符串出现的次数

# 将字符串按照出现次数降序排序,出现次数相同的按照字典序升序排序
p = sorted(cnts.keys(), key=lambda x: (-cnts[x], x))
for str in p:
    print(str, end=" ")
  • 遍历列表s中的每个字符串x,使用cnts.get(x, 0)获取xcnts中的当前计数(如果x不在cnts中,则返回0),然后将该计数加1并更新到cnts中。
  • 使用sorted()函数对cnts的键(即字符串)进行排序。排序的关键在于key参数,这里使用了一个lambda函数lambda x: (-cnts[x], x)。(因为Python的sorted()函数默认是升序排序,所以取负值可以实现降序)。如果两个字符串的出现次数相同,那么就会按照字符串本身的字典序(即字母顺序)进行升序排序,这是由lambda函数中的x部分保证的。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值