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;
            }
        }

    这题又长又卵,没意思。

  • 相关阅读:
    docker安装RabbitMQ
    通过Docker安装配置Mysql主从节点
    Docker基本使用命令
    flask接收post提交的json数据并保存至数据库
    前端面经
    js 仿朋友圈的时间显示 刚刚 几天前
    外部div宽度不是100%时,css设置图片宽高相等
    Vue项目图片剪切上传——vue-cropper的使用(二)
    Vue项目图片剪切上传——vue-cropper的使用
    vuex
  • 原文地址:https://www.cnblogs.com/asenyang/p/10065256.html
Copyright © 2011-2022 走看看