Java教程

MakeMistake

本文主要是介绍MakeMistake,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
func makeMistake(option string) string {
	if option == "T" {
		return "F"
	}
	rand.Seed(time.Now().UnixNano())

	if len(option) == 1 {
		oldStr := option
		newStr := ""
		for i := 0; (newStr == "" || newStr == oldStr) && i < 100; i++ {
			newStr = string(rune('A' + rand.Int()%4))
		}
		return newStr
	}

	oldBit := 0
	for _, chr := range strings.Split(option, ",") {
		oldBit |= 1 << (byte(chr[0]) - 'A')
	}

	newBit := 0
	for i := 0; (newBit == 0 || newBit == oldBit) && i < 100; i++ {
		newBit = 0
		for j := 0; j <= rand.Int()%4; j++ {
			newBit |= 1 << (rand.Int() % 4)
		}
	}

	newStr := ""
	for i := 0; newBit != 0; i++ {
		if newBit&1 == 1 {
			if newStr == "" {
				newStr += string(rune('A' + i))
			} else {
				newStr += "," + string(rune('A'+i))
			}
		}
		newBit >>= 1
	}
	return newStr
}
这篇关于MakeMistake的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!