11
生成棒球音高字符串
目标 编写一个程序或函数,该程序或函数需要一个正整数,n并随机生成一系列合法的长度的音高(此后称为音高字符串)n。 输入值 非零正整数n<= 100 输出量 返回一个随机字符串或字符列表,这些字符串或字符串表示可能的有效音调字符串length n。使用的字符将是: B-球。如果您累积了其中的4个,击球手就会走动并击球。 S-罢工。如果您累积了其中的3个,击球手就没电了,击球完毕。 F-犯规。也将增加打击次数,但无法击退击球员。即,您不能让Foul成为有效字符串中的最后一个音调。超过两次罢工/犯规的任何犯规都不会增加罢工的次数(击球手此时已经有2次罢工,而第3次将使他退出)。 H-命中。击球手将球击中并完成击球。 (这被略微简化,但是您不必担心) 有效的音高字符串是指以三振,步行或击球结尾的字符串。 即,无效的音高字符串具有 在第4球,第3击或击中之后的其他投球 在产生第四个球,第三个打击或命中之前终止。 规则 您的程序必须能够针对给定的输入产生所有可能的结果。 您的程序不必一定是随机的,但仍必须遵循以前的规则。 这是代码高尔夫球。 例子 Input => Possible Outputs 1 => [H] #Can only end with a hit 2 => [S,H], [B,H], [F,H] #Can only end with a hit 3 => [S,S,S], [F,F,S], …