题解 | #最大数#
最大数
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; } } 关键在于比较函数的实现,一种是拼接后转为整数比较,一种是字符串比较,都差不多