腾讯笔试04-24 题目一

后台Java开发岗位,实习机试。5道题一共,一题20分,满分100分。

第一题:

牛牛有n个长度相等由数字组成的字符串,牛牛将他们一行一行排列在一起。牛牛喜欢从上到下读数,可以将n个字符串读出了一些数字字符串。牛牛想帮这些数字字符串记录下来,并将他们进行排序。希望你能帮牛牛将从小到大排序后的数字字符串输出出来,输出的这个数字字符串要去掉前导0。

输入描述:

第一行为n,表示有n个字符串。

接下来有n行,每行有一个字符串str。

1<=n<=9

1<=str.length<=10^5

输出描述:

输出为一行,表示排序后的数字,每个数字以空格隔开。

示例1

输入

3
0123
1234
2345

输出

12 1223 234 345

说明

每一列从上往下读得到的数字为012,123,234,345,去掉前导0之后的排序后结果如上。

示例2

输入

4
0000
0101
1011
0111

输出

10 11 101 111

思路:

简单的模拟题,先取出各个数字,然后使用python直接将字符串str转数字int即可(python会自动去掉前导0),比如0010直接调用,int(0010),结果就是10。

附上Python AC代码:

if __name__ == "__main__":
    n = int(input())
    secLine = input()
    num = len(secLine)
    numList=[]
    numList.append(secLine)
    for k in range(1,n):
        numList.append(input())
    list=[]
    for i in range(num):
        temp=""
        for j in range(n):
            temp+=numList[j][i]
        list.append(temp)
    list=[int(num) for num in list]
    list.sort()
    res=""
    for k in range(len(list)):
        res+=str(list[k])
        if k!=len(list)-1:
            res+=" "
    print(res)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值