zoukankan      html  css  js  c++  java
  • leetcode949

    public class Solution
        {
            public string LargestTimeFromDigits(int[] A)
            {
                var list = Perm(A, 0);
                var maxHour = -1;
                var maxMinute = -1;
                foreach (var nums in list)
                {
                    var hour = nums[0].ToString() + nums[1].ToString();
                    var minute = nums[2].ToString() + nums[3].ToString();
                    var strtime = hour + ":" + minute;
                    if (ValidTime(strtime))
                    {
                        var Inthour = Convert.ToInt32(hour);
                        var IntMinute = Convert.ToInt32(minute);
                        if ((Inthour > maxHour) || (Inthour == maxHour && IntMinute >= maxMinute))
                        {
                            maxHour = Inthour;
                            maxMinute = IntMinute;
                        }
                    }
                }
                if (maxHour >= 0)
                {
                    var tempHour = maxHour.ToString();
                    var tempMinute = maxMinute.ToString();
                    if (tempHour.Length == 1)
                    {
                        tempHour = "0" + tempHour;
                    }
                    if (tempMinute.Length == 1)
                    {
                        tempMinute = "0" + tempMinute;
                    }
                    return tempHour + ":" + tempMinute;
                }
                else
                {
                    return "";
                }
            }
    
            private void Swap<T>(ref T a, ref T b)
            {
                T t = a;
                a = b;
                b = t;
            }
            private IEnumerable<int[]> Perm(int[] arr, int pos)
            {
                if (pos == arr.Length)
                {
                    yield return arr;
                }
                for (int i = pos; i < arr.Length; ++i)
                {
                    Swap(ref arr[i], ref arr[pos]);
                    foreach (var j in Perm(arr, pos + 1)) yield return j;
                    Swap(ref arr[i], ref arr[pos]);
                }
            }
    
    
            /// <summary>
            /// 判断时间格式是否合法
            /// </summary>
            /// <param name="time"></param>
            /// <returns></returns>
            private bool ValidTime(string time)
            {
                var part = time.Split(':');
                var hour = Convert.ToInt32(part[0]);
                var minute = Convert.ToInt32(part[1]);
                if (hour >= 0 && hour <= 23 && minute >= 0 && minute <= 59)
                {
                    return true;
                }
                return false;
            }
        }

    这题又长又卵,没意思。

  • 相关阅读:
    浅谈树状数组与线段树
    BZOJ1367:[Baltic2004]sequence
    浅谈左偏树
    BZOJ4003:[JLOI2015]城池攻占
    BZOJ2809:[APIO2012]dispatching
    BZOJ1455:罗马游戏
    模拟ssh远程执行命令
    基于TCP协议的socket套接字编程
    计算机网络基础知识
    元类( 控制对象产生和控制类产生)模板
  • 原文地址:https://www.cnblogs.com/asenyang/p/10065256.html
Copyright © 2011-2022 走看看