题解 | #井字棋#

井字棋

http://www.nowcoder.com/practice/0375c1d206ef48a3894f72aa07b2fdde

  • 很好的一个解题思路:
    • 1.巧妙的运用了行列规则的列表中的下标
    • 2.列表的切片技巧,切成每行是1个元素,每列是1个元素,切2对角线
    • 3.运用-1作为结束的标志,没有谁赢
    • 4.巧妙的利用字典的键作为谁赢的标志,然后输出键值。
    • 5.总结:这个解法让我眼睛一亮,巧妙的运用切片、字典键值。。。。
lines = []
for i in range(3):
    lines.extend(input().split())
# print(lines)

lx = ["K","K","K"]
ly = ["B","B","B"]

dict_1 = {"K":"KiKi wins!","B":"BoBo wins!"}
m = [lines[0:3],lines[3:6],lines[6:9],lines[0::3],lines[1::3],lines[2::3],lines[0::4],lines[2:8:2],-1]
for i in m:
    if i == lx or i == ly:
        print(dict_1[i[0]])
        break
    elif i == -1:
        print("No winner!")
全部评论
这个技巧太秀了!
点赞 回复 分享
发布于 2022-04-10 23:11

相关推荐

与火:这不接? 留子的钱不挣白不挣
点赞 评论 收藏
分享
7 1 评论
分享
牛客网
牛客企业服务