本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!