以下是Go语言实现:

package main

import "fmt"

func isContinuous(nums []int) bool {
    n := len(nums)
    if n != 3 && n != 5 {
        return false
    }
    var wildcard int
    for i := 0; i < n; i++ {
        if nums[i] == 0x41 || nums[i] == 0x42 {
            wildcard++
        }
    }
    if n == 3 {
        if wildcard >= 2 {
            return true
        }
        for i := 0; i < n-1; i++ {
            if nums[i+1]-nums[i] != 1 {
                if wildcard > 0 && nums[i+1]-nums[i] == 2 {
                    wildcard--
                } else {
                    return false
                }
            }
        }
        return true
    } else { // n == 5
        if wildcard >= 1 {
            return true
        }
        for i := 0; i < n-1; i++ {
            if nums[i+1]-nums[i] != 1 {
                if wildcard > 0 && nums[i+1]-nums[i] == 2 {
                    wildcard--
                } else if i < n-2 && nums[i+2]-nums[i] == 2 && nums[i+1] == 0x2E {
                    wildcard--
                    i++
                } else {
                    return false
                }
            }
        }
        return true
    }
}

func main() {
    nums := []int{0x2, 0x3, 0x4, 0x5, 0x6}
    fmt.Println(isContinuous(nums)) // true

    nums = []int{0x2, 0xE, 0xD}
    fmt.Println(isContinuous(nums)) // true

    nums = []int{0x2, 0xE, 0x41}
    fmt.Println(isContinuous(nums)) // true

    nums = []int{0x2, 0xE, 0x41, 0x43, 0x44}
    fmt.Println(isContinuous(nums)) // false

    nums = []int{0x2, 0x3, 0x4, 0x2E, 0x6}
    fmt.Println(isContinuous(nums)) // true

    nums = []int{0x2, 0x3, 0x4, 0x2E, 0x42}
    fmt.Println(isContinuous(nums)) // true

    nums = []int{0x2, 0x3, 0x4, 0x2E, 0x41}
    fmt.Println(isContinuous(nums)) // false
}

函数isContinuous接收一个[]int类型的参数nums,判断其中的数是否连续。如果nums中的数个数不为3或者5,则返回false。如果nums中有两个或两个以上的万能数,则返回true。如果nums中的数连续,则返回true。如果nums中的数不连续,但是可以通过万能数变成连续的数,则将万能数当做需要的数进行替换。如果无法通过万能数变成连续的数,则返回false

请用go实现以下算法: 0x2-0xd的连续数,0x41和0x42作为万能数(万能数能根据情况变成任意数),0x2可以和0xE进行连续。请用一个函数实现判断输入3个数或者5个数的数组是否连续?

原文地址: https://www.cveoy.top/t/topic/vF2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录