5位数字游戏算法

Posted

技术标签:

【中文标题】5位数字游戏算法【英文标题】:5 digit number game algorithm 【发布时间】:2018-07-23 15:41:52 【问题描述】:

您好,我需要一个算法来解决这个问题。Host 认为数字 98321,Guess 是 12345。Host 会回复 ABBCC。 'A' 代表 3(正确和中间),'BB' 代表 12 正确(但位置错误),CC 代表 45(错误数字)。

【问题讨论】:

“我需要一个算法来解决这个问题”。由于这是一个面向开发人员的网站,因此正确的做法是先提出一个算法,然后为其编写代码。 家庭作业问题。提出一个想法(和实施)并在此处讨论。没有人会为您编写代码。 我们不会为你做作业。先自己尝试一下,然后来这里询问具体问题。 你可以尝试简单的蛮力,用一些变体从 A B 和 C 的有效列表中选择数字 【参考方案1】:

这显然是家庭作业,我不会为您提供简单的解决方案。但是,这个练习游戏非常受欢迎,您可以通过谷歌搜索找到解决方案。

不管怎样,这里有一些伪代码可以帮助你:

guess_game(s1, s2):
    toret = ""

    for i <- 0 to lengthOf( s1 ) - 1:
        is s1[i] == s2[ i ] ?:
            yes: toret += "A"
            no: is s2[ i ] in s1 ?:
                yes: toret += "B"
                no: toret += "C"

    return toret

希望这能激励您接受挑战并开始编程。

【讨论】:

以上是关于5位数字游戏算法的主要内容,如果未能解决你的问题,请参考以下文章

算法刷题AcWing 95. 费解的开关——递推

2048游戏回想二:算法总结(移动合并动画等)

2048游戏回顾二:算法总结(移动合并动画等)

算法习题---3.01猜数字游戏提示

游戏的匹配算法

算法之美