题解 | #最大数#

最大数

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

using System;
using System.Collections.Generic;


class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 最大数
     * @param nums int整型一维数组
     * @return string字符串
     */
    public string solve (List<int> nums) {
        // write code here
        if (nums == null || nums.Count == 0)
            return string.Empty;
        if (nums.Count == 1)
            nums[0].ToString();

        List<string> strNums = new List<string>() { };
        foreach (int val in nums)
            strNums.Add(val.ToString());
        strNums.Sort(StrMax);

        //List<string> strNums = new List<string>() { nums[0].ToString() };
        //for(int nIndex = 1; nIndex < nums.Count; nIndex++)
        //{
        //    //int nFindIndex = strNums.FindIndex(r => string.Compare(r, nums[nIndex].ToString(), true) > 0);
        //    int nFindIndex = strNums.FindIndex(StrMax);
        //    if (nFindIndex >= 0)
        //        strNums.Insert(nFindIndex, nums[nIndex].ToString());
        //    else
        //        strNums.Add(nums[nIndex].ToString());
        //}
        strNums.Reverse();
        return strNums[0].ToString().Equals("0") ? "0" : string.Join("", strNums);
    }

    public static int StrMax(string strA, string strB) {
        if (string.IsNullOrWhiteSpace(strA))
            return -1;
        if (string.IsNullOrWhiteSpace(strB))
            return 1;

        int nIndex = 0;
        for (; nIndex < strA.Length && nIndex < strB.Length; nIndex++) {
            if (strA[nIndex] > strB[nIndex])
                return 1;
            if (strA[nIndex] < strB[nIndex])
                return -1;
        }

        int nRtn = 0;
        if (strA.Length > strB.Length)
            nRtn = strA[nIndex] >= strA[nIndex - 1] ? 1 : strA[nIndex] == strA[nIndex - 1] ?
                   0 : -1;
        else if (strA.Length == strB.Length)
            nRtn = 0;
        else
            nRtn = strB[nIndex] >= strB[nIndex - 1] ? -1 : strB[nIndex] == strB[nIndex - 1]
                   ? 0 : 1;
        return nRtn;
    }
}

全部评论

相关推荐

微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务