public class Solution
{
public string LargestTimeFromDigits(int[] A)
{
var list = Perm(A, );
var maxHour = -;
var maxMinute = -;
foreach (var nums in list)
{
var hour = nums[].ToString() + nums[].ToString();
var minute = nums[].ToString() + nums[].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 >= )
{
var tempHour = maxHour.ToString();
var tempMinute = maxMinute.ToString();
if (tempHour.Length == )
{
tempHour = "" + tempHour;
}
if (tempMinute.Length == )
{
tempMinute = "" + 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 + )) 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[]);
var minute = Convert.ToInt32(part[]);
if (hour >= && hour <= && minute >= && minute <= )
{
return true;
}
return false;
}
}

这题又长又卵,没意思。

leetcode949的更多相关文章

  1. [Swift]LeetCode949. 给定数字能组成的最大时间 | Largest Time for Given Digits

    Given an array of 4 digits, return the largest 24 hour time that can be made. The smallest 24 hour t ...

  2. Leetcode949. Largest Time for Given Digits给定数字能组成最大的时间

    给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间. 最小的 24 小时制时间是 00:00,而最大的是 23:59.从 00:00 (午夜)开始算起,过得越久,时间越大. ...

随机推荐

  1. k8s dockerk个人学习(2)

    部署nginx和应用 部署nginx时我们需要把nginx的配置文件那出来便于以后修改nginx的配置,放置nginx配置文件时我们用k8s的pv的存储方式来存放这些文件 1.安装nfs服务,在kub ...

  2. STL版本号简单介绍

    说明:本文仅供学习交流.转载请标明出处.欢迎转载! 本文的參考文献为:<STL源代码剖析>侯捷        (1)HP STL:全部STL的祖先版本号,由C++之父Alexander S ...

  3. 【转】每天一个linux命令(37):date命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/13/2815687.html 在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常 ...

  4. python类的继承的两种方式

    class Animal(object): """docstring for Animal""" def __init__(self, na ...

  5. Angular 4 依赖注入

    一.依赖注入 1. 创建工程 ng new myangular 2. 创建组件 ng g componet product1 3. 创建服务 ng g service shared/product 如 ...

  6. 【python】重定向输出

    重定向的理解:就是把所要输出的结果输出到其他的地方.常用方法:"print >>",(若有其他方法后续补充) 举个例子: __author__ = 'paulwinfl ...

  7. 【python】class之super关键字的作用

    在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(self):    prin ...

  8. Densenet 相关

    https://github.com/flyyufelix/DenseNet-Keras

  9. jsoncpp构造json字符串和json数组

    jsoncpp构造json字符串和json数组 参考文章:Jsoncpp的简单使用 下载json文件夹放在c++项目的include目录下,在CMakeLists中include进去,然后就可以在代码 ...

  10. Java设计原则之里氏替换原则

    里氏代换原则由2008年图灵奖得主.美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出.其严格表述如下:如果对每一个类型为S的 ...