题解 | #牛牛组数#

牛牛组数

http://www.nowcoder.com/practice/d4087657d86242169d2ed807d0d1410e

首先容易得知,和最大的k个数一定是k-1个1位数和1个n-k+1位数,且输入的x中的n个数字应如下分布:k个最小的数字填充到k个数的个位,其他数字从小到大依次填充到十位往上,构成最后的n-k+1位数。由于输入的数字只能是1到9,可以不用对x中数字排序,而是直接查找x中有多少个i(i=1,...,9),再从1到9顺序填充k个数,在这个过程中逐步计算结果就可以了。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 返回最大和的字符串
# @param x string字符串 即题目描述中所给字符串
# @param k int整型 即题目描述中所给的k
# @return string字符串
#
class Solution:
    def Maxsumforknumers(self , x , k ):
        # write code here
        index=0
        ans=0
        flag=True
        for number in range(1,10):
            count=x.count(str(number))
            if count==0:
                continue
            if flag:
                index+=count
                if index>=k:
                    index=index-k+1
                    count=count-index
                    ans+=int(str(number)*index)
                    flag=False
                ans+=number*count
            else:
                ans+=int(str(number)*count)*10**index
                index+=count
        return ans
全部评论

相关推荐

07-07 11:33
江南大学 Java
已经在暑假实习了 ,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
面向对象的火龙果很爱...:去吃一顿炸鸡就走
点赞 评论 收藏
分享
牛客92804383...:在他心里你已经是他的员工了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:15
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务