题解 | #井字棋#
井字棋
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!")