题解 | #最大数#

最大数

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

using System;
using System.Collections.Generic;
using System.Linq;


class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 最大数
     * @param nums int整型一维数组 
     * @return string字符串
     */
    public string solve (List<int> nums) {
        // write code here
       // var ordered=nums.OrderByDescending(x=>x.ToString()[0]).ThenByDescending(x=>x.ToString().Length);
        if(nums.All(x=>x<=0))
            return "0";
        nums.Sort((x,y)=>
                  {
                      var s1=x.ToString();
                      var s2=y.ToString();
//                       return -1*(s1+s2).CompareTo(s2+s1);
                      return -1*(int.Parse(s1+s2)-int.Parse(s2+s1));
                  });
        var ans=nums.Aggregate("",(total,next)=>total+next.ToString());
        return ans;
    }
}

关键在于比较函数的实现,一种是拼接后转为整数比较,一种是字符串比较,都差不多
全部评论

相关推荐

头像
昨天 16:45
已编辑
东北大学 自动化类
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务