Go 语言实现连续数判断算法 - 0x2-0xD 连续数,0x41 和 0x42 为万能数
package main
import ( "fmt" "sort" )
func isContinuous(nums []int) bool { if len(nums) != 3 && len(nums) != 5 { return false }
sort.Ints(nums)
for i := 0; i < len(nums)-1; i++ {
if nums[i] == 0x41 || nums[i] == 0x42 {
continue
}
if nums[i] == 0x2 {
if nums[i+1] != 0xd && nums[i+1] != 0xe {
return false
}
} else if nums[i] == 0xd {
if nums[i+1] != 0x2 && nums[i+1] != 0x0e {
return false
}
} else if nums[i]+1 != nums[i+1] {
return false
}
}
return true
}
func main() { nums1 := []int{0x2, 0x3, 0x4} nums2 := []int{0x2, 0xd, 0xe, 0xf, 0x10} nums3 := []int{0x2, 0xd, 0xe, 0x10} nums4 := []int{0x2, 0x41, 0x42}
fmt.Println(isContinuous(nums1)) // true
fmt.Println(isContinuous(nums2)) // true
fmt.Println(isContinuous(nums3)) // false
fmt.Println(isContinuous(nums4)) // true
}
原文地址: https://www.cveoy.top/t/topic/lImh 著作权归作者所有。请勿转载和采集!