zl程序教程

您现在的位置是:首页 >  其他

当前栏目

1725. 组队井字游戏

2023-09-27 14:27:32 时间

Powered by:NEFU AB-IN

Link

1725. 组队井字游戏

  • 题意

    见原题

  • 思路

    枚举所有 横行、竖列、对角线即可,最后运用哈希表进行判重和计数即可

  • 代码

    from collections import Counter, defaultdict
    ans = []
    g = []
    
    for _ in range(3): #横行
        s = input()
        d = Counter(s)
        ans.append(d)
        g.append(s)
    
    for j in range(3): #纵行
        d = Counter()
        for i in range(3):
            d[g[i][j]] += 1
        ans.append(d)
    
    d = Counter()
    for i in range(3): #正对角线
        d[g[i][i]] += 1
    ans.append(d)
    
    d = Counter()
    for i in range(3): #反对角线 
        d[g[i][3 - i - 1]] += 1
    ans.append(d)
    
    st = defaultdict(int)
    cnt1, cnt2 = 0, 0
    for d in ans:
        s = ""
        for key in sorted(d.keys()):
            s += key
        if len(d) == 1 and st[s] == 0:
            cnt1 += 1
            st[s] += 1
        if len(d) == 2 and st[s] == 0:
            cnt2 += 1
            st[s] += 1
    
    print(cnt1)
    print(cnt2)