题解 | #第一个只出现一次的字符#

扑克牌顺子

http://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4

三个条件:

  1. 用set存数组
    set := make(map[string]bool)
  2. 没有重复数值:用一个set来填充数据,0不要放进去,set的大小加上0的个数必须为5个
  3. 最大和最小差值在5以内
func IsContinuous(numbers []int) bool {
    // write code here
    if len(numbers) < 5 || len(numbers) > 5 {
        return false
    }
    n := 0
    max := 0
    min := 14
    set := make(map[string]bool)

    for i := 0; i < len(numbers); i++ {
        if numbers[i] == 0 {
            n += 1
            continue
        } else {
            num := numbers[i]
            set[string(num)] = true
            if  num > max {
                max = num
            }
            if num < min {
                min = num
            }
        }
    }
    //没有重复数值:用一个set来填充数据,0不要放进去,set的大小加上0的个数必须为5个
    if len(set) + n != 5{
        return false
    }
    //最大和最小差值在5以内
    if max - min > 4 {
        return false
    }
    return true
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务