美团3月30日算法题——小美的平衡串(golang答案)

package main

import (
	"fmt"
	"strings"
)

var nums int
var path []string

func main() {
	var n int
	fmt.Scan(&n)
	var str string
	fmt.Scan(&str)
	backtracking(str, 0)
	fmt.Println(nums)
}

func backtracking(str string, index int) {
	temp := make([]string, len(path))
	copy(temp, path)
	if isPalindrome(strings.Join(temp, "")) {
		nums = (nums + 1) % 1000000007
	}
	if index >= len(str) {
		return
	}
	for i := index; i < len(str); i++ {
		path = append(path, str[i:i+1])
		track(str, i+1)
		path = path[:len(path)-1]
	}
}

func isPalindrome(str string) bool {
	if len(str) < 2 {
		return false
	}
	strMap := make(map[byte]int)
	for i := 0; i < len(str); i++ {
		strMap[str[i]]++
	}
	if len(strMap) != 2 {
		return false
	}
	a := make([]int, 0)
	for _, i := range strMap {
		a = append(a, i)
	}
	if a[0] == a[1] {
		return true
	}
	return false
}
//5
//ababc

限制是一秒,时间超了,要做剪枝操作。

#笔试经验#
全部评论

相关推荐

2025-12-21 21:22
安徽农业大学 运营
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
实习简历求拷打
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务