classSolution{ public String getHint(String secret, String guess){ int len = secret.length(); int A = 0; // 公牛数量 int B = 0; // 奶牛数量 // 创建直接寻址表 int[] address = newint[10]; // secret和guess奶牛数字的相互抵消 for (int i = 0; i if (secret.charAt(i) == guess.charAt(i)) A++; else { address[secret.charAt(i) - '0']++; address[guess.charAt(i) - '0']--; } } for (int addr : address) if (addr > 0) B += addr; B = len - A - B; return A + "A" + B + "B"; } }
Go语言代码
import ( "fmt" )
funcgetHint(secret string, guess string)string { len := len(secret) A := 0// 公牛统计 B := 0// 奶牛统计 // 创建直接寻址表 address := [10]int{0} for i := 0; i len; i++ { if secret[i] == guess[i] { A++ continue } address[secret[i]-'0']++ address[guess[i]-'0']-- } for _, addr := range address { if addr > 0 { B += addr } } B = len - A - B // 字符串拼接 return fmt.Sprint(A, "A", B, "B") }
Go语言执行结果
执行用时 : 0 ms , 在所有 Go 提交中击败了 100.00% 的用户 内存消耗 : 2.3MB , 在所有 Go 提交中击败了 75.00