package main import ( "bufio" "fmt" "os" "sort" "strings" ) func main() { snr := bufio.NewScanner(os.Stdin) snr.Scan() str := snr.Text() str = strings.Trim(str, " ") nums := []int{} for i := 0; i < len(str); i++ { nums = append(nums, int(str[i]-'0')) } sort.Ints(nums) cnt := helper(nums) //fmt.Println(cnt) sum := cnt * cnt * cnt * cnt fmt.Println(sum) } func helper(nums []int) int { ans := 0 row := 0 var dfs func(start int) dfs = func(start int) { ans++ fmt.Println(row) //fmt.Println("row:", row, ans) for j := start; j < len(nums); j++ { if row*10+nums[j] > 255 { continue } if row == 0 && nums[j] == 0 { continue } row = row*10 + nums[j] dfs(start) row = row / 10 } } dfs(0) //fmt.Println("nums:", nums) if nums[0] == 0 { return ans } return ans - 1 }
点赞 评论
牛客网
牛客企业服务