继续过中等难度.0309

 

 

 

 


  。
  8 String to Integer (atoi)  13.9%Medium
  。151Reverse Words in a String    15.7%Medium 
  。288Unique Word Abbreviation    15.8%Medium 
  。29Divide Two Integers    16.0%Medium 
  。166Fraction to Recurring Decimal    17.0%Medium 
  。130Surrounded Regions    17.8%Medium 
  。91Decode Ways    19.1%Medium 
  。307Range Sum Query - Mutable    19.1%Medium 
  。127Word Ladder    19.2%Medium 
  。220Contains Duplicate III    19.3%Medium 
  。165Compare Version Numbers    19.5%Medium 
 444Sequence Reconstruction    19.7%Medium 
 468Validate IP Address    20.3%Medium 
 523Continuous Subarray Sum    20.7%Medium 
 211Add and Search Word - Data structure design    20.9%Medium 
 153Sum    21.3%Medium 
 179Largest Number    21.8%Medium 
 98Validate Binary Search Tree    22.6%Medium 
 464Can I Win    23.4%Medium 
 304Range Sum Query 2D - Immutable    23.4%Medium 
 3Longest Substring Without Repeating Characters    23.9%Medium 
 61Rotate List    24.1%Medium 
 71Simplify Path    24.4%Medium 
 152Maximum Product Subarray    24.8%Medium 
 143Reorder List    24.9%Medium 
 5Longest Palindromic Substring    24.9%Medium 
 54Spiral Matrix    25.0%Medium 
 355Design Twitter    25.0%Medium 
 133Clone Graph    25.0%Medium 
 324Wiggle Sort II    25.4%Medium 
 79Word Search    25.7%Medium 
 353Design Snake Game    25.9%Medium 
 184Sum    26.0%Medium 
 163Missing Ranges    26.0%Medium 
 402Remove K Digits    26.1%Medium 
 322Coin Change    26.1%Medium 
 6ZigZag Conversion    26.2%Medium 
 93Restore IP Addresses    26.2%Medium 
 43Multiply Strings    26.3%Medium 
 150Evaluate Reverse Polish Notation    26.3%Medium 
 271Encode and Decode Strings    26.3%Medium 
 210Course Schedule II    26.3%Medium 
 208Implement Trie (Prefix Tree)    26.4%Medium 
 365Water and Jug Problem    26.5%Medium 
 138Copy List with Random Pointer    26.6%Medium 
 2Add Two Numbers    26.8%Medium 
 50Pow(x, n)    26.8%Medium 
 222Count Complete Tree Nodes    27.1%Medium 
 306Additive Number    27.3%Medium 
 418Sentence Screen Fitting    27.4%Medium 
 60Permutation Sequence    27.5%Medium 
 221Maximal Square    27.7%Medium 
 148Sort List    27.7%Medium 
 186Reverse Words in a String II    27.9%Medium 
 456132 Pattern    28.0%Medium 
 229Majority Element II    28.0%Medium 
 332Reconstruct Itinerary    28.3%Medium 
 31Next Permutation    28.3%Medium 
 227Basic Calculator II    28.4%Medium 
 310Minimum Height Trees    28.6%Medium 
 228Summary Ranges    28.6%Medium 
 139Word Break    28.8%Medium 
 134Gas Station    28.8%Medium 
 82Remove Duplicates from Sorted List II    28.8%Medium 
 56Merge Intervals    28.9%Medium 
 55Jump Game    29.3%Medium 
 209Minimum Size Subarray Sum    29.3%Medium 
 236Lowest Common Ancestor of a Binary Tree    29.5%Medium 
 397Integer Replacement    29.5%Medium 
 469Convex Polygon    29.8%Medium 
 333Largest BST Subtree    30.0%Medium 
 92Reverse Linked List II    30.0%Medium 
 385Mini Parser    30.1%Medium 
 187Repeated DNA Sequences    30.2%Medium 
 373Find K Pairs with Smallest Sums    30.2%Medium 
 356Line Reflection    30.3%Medium 
 163Sum Closest    30.7%Medium 
 95Unique Binary Search Trees II    30.8%Medium 
 161One Edit Distance    30.8%Medium 
 379Design Phone Directory    30.8%Medium 
 207Course Schedule    30.9%Medium 
 396Rotate Function    30.9%Medium 
 34Search for a Range    31.0%Medium 
 142Linked List Cycle II    31.0%Medium 
 105Construct Binary Tree from Preorder and Inorder Traversal    31.1%Medium 
 63Unique Paths II    31.1%Medium 
 467Unique Substrings in Wraparound String    31.2%Medium 
 106Construct Binary Tree from Inorder and Postorder Traversal    31.2%Medium 
 131Palindrome Partitioning    31.5%Medium 
 47Permutations II    31.5%Medium 
 267Palindrome Permutation II    31.5%Medium 
 86Partition List    31.8%Medium 
 264Ugly Number II    31.8%Medium 
 40Combination Sum II    32.0%Medium 
 113Path Sum II    32.1%Medium 
 33Search in Rotated Sorted Array    32.1%Medium 
 147Insertion Sort List    32.1%Medium 
 223Rectangle Area    32.2%Medium 
 525Contiguous Array    32.4%Medium 
 19Remove Nth Node From End of List    32.5%Medium 
 274H-Index    32.5%Medium 
 49Group Anagrams    32.7%Medium 
 120Triangle    32.8%Medium 
 417Pacific Atlantic Water Flow    32.9%Medium 
 81Search in Rotated Sorted Array II    32.9%Medium 
 103Binary Tree Zigzag Level Order Traversal    32.9%Medium 
 200Number of Islands    33.0%Medium 
 109Convert Sorted List to Binary Search Tree    33.1%Medium 
 17Letter Combinations of a Phone Number    33.1%Medium 
 213House Robber II    33.3%Medium 
 201Bitwise AND of Numbers Range    33.3%Medium 
 368Largest Divisible Subset    33.5%Medium 
 372Super Pow    33.5%Medium 
 117Populating Next Right Pointers in Each Node II    33.6%Medium 
 299Bulls and Cows    33.7%Medium 
 275H-Index II    33.8%Medium 
 114Flatten Binary Tree to Linked List    34.0%Medium 
 473Matchsticks to Square    34.0%Medium 
 36Valid Sudoku    34.4%Medium 
 90Subsets II    34.6%Medium 
 376Wiggle Subsequence    34.9%Medium 
 393UTF-8 Validation    34.9%Medium 
 505The Maze II    34.9%Medium 
 80Remove Duplicates from Sorted Array II    35.2%Medium 
 284Peeking Iterator    35.2%Medium 
 450Delete Node in a BST    35.3%Medium 
 74Search a 2D Matrix    35.4%Medium 
 73Set Matrix Zeroes    35.4%Medium 
 375Guess Number Higher or Lower II    35.5%Medium 
 331Verify Preorder Serialization of a Binary Tree    35.5%Medium 
 277Find the Celebrity    35.5%Medium 
 388Longest Absolute File Path    35.5%Medium 
 395Longest Substring with At Least K Repeating Characters    35.5%Medium 
 129Sum Root to Leaf Numbers    35.5%Medium 
 244Shortest Word Distance II    35.6%Medium 
 279Perfect Squares    35.6%Medium 
 314Binary Tree Vertical Order Traversal    36.0%Medium 
 285Inorder Successor in BST    36.2%Medium 
 11Container With Most Water    36.2%Medium 
 162Find Peak Element    36.3%Medium 
 289Game of Life    36.4%Medium 
 39Combination Sum    36.6%Medium 
 116Populating Next Right Pointers in Each Node    36.9%Medium 
 75Sort Colors    37.0%Medium 
 261Graph Valid Tree    37.0%Medium 
 474Ones and Zeroes    37.1%Medium 
 313Super Ugly Number    37.2%Medium 
 24Swap Nodes in Pairs    37.4%Medium 
 64Minimum Path Sum    37.5%Medium 
 48Rotate Image    37.6%Medium 
 533Lonely Pixel II   New 37.6%Medium 
 300Longest Increasing Subsequence    37.6%Medium 
 102Binary Tree Level Order Traversal    37.8%Medium 
 78Subsets    37.8%Medium 
 240Search a 2D Matrix II    37.9%Medium 
 215Kth Largest Element in an Array    38.1%Medium 
 334Increasing Triplet Subsequence    38.2%Medium 
 416Partition Equal Subset Sum    38.3%Medium 
 77Combinations    38.3%Medium 
 361Bomb Enemy    38.3%Medium 
 59Spiral Matrix II    38.4%Medium 
 253Meeting Rooms II    38.6%Medium 
 247Strobogrammatic Number II    38.8%Medium 
 380Insert Delete GetRandom O(1)    38.8%Medium 
 491Increasing Subsequences    38.9%Medium 
 153Find Minimum in Rotated Sorted Array    39.0%Medium 
 255Verify Preorder Sequence in Binary Search Tree    39.3%Medium 
 199Binary Tree Right Side View    39.4%Medium 
 251Flatten 2D Vector    39.5%Medium 
 390Elimination Game    39.6%Medium 
 62Unique Paths    39.7%Medium 
 524Longest Word in Dictionary through Deleting    39.8%Medium 
 341Flatten Nested List Iterator    39.8%Medium 
 173Binary Search Tree Iterator    39.8%Medium 
 249Group Shifted Strings    39.9%Medium 
 89Gray Code    39.9%Medium 
 309Best Time to Buy and Sell Stock with Cooldown    40.0%Medium 
 435Non-overlapping Intervals    40.1%Medium 
 96Unique Binary Search Trees    40.1%Medium 
 399Evaluate Division    40.1%Medium 
 386Lexicographical Numbers    40.1%Medium 
 298Binary Tree Longest Consecutive Sequence    40.3%Medium 
 137Single Number II    40.5%Medium 
 394Decode String    40.7%Medium 
 250Count Univalue Subtrees    40.9%Medium 
 424Longest Repeating Character Replacement    40.9%Medium 
 2593Sum Smaller    41.0%Medium 
 436Find Right Interval    41.2%Medium 
 398Random Pick Index    41.2%Medium 
 254Factor Combinations    41.3%Medium 
 482License Key Formatting    41.4%Medium 
 46Permutations    41.4%Medium 
 449Serialize and Deserialize BST    41.5%Medium 
 377Combination Sum IV    41.6%Medium 
 490The Maze    41.8%Medium 
 516Longest Palindromic Subsequence    41.9%Medium 
 325Maximum Size Subarray Sum Equals k    41.9%Medium 
 241Different Ways to Add Parentheses    42.0%Medium 
 319Bulb Switcher    42.0%Medium 
 337House Robber III    42.1%Medium 
 287Find the Duplicate Number    42.3%Medium 
 328Odd Even Linked List    42.4%Medium 
 452Minimum Number of Arrows to Burst Balloons    42.5%Medium 
 230Kth Smallest Element in a BST    42.6%Medium 
 22Generate Parentheses    42.7%Medium 
 318Maximum Product of Word Lengths    42.8%Medium 
 216Combination Sum III    42.9%Medium 
 423Reconstruct Original Digits from English    43.0%Medium 
 351Android Unlock Patterns    43.1%Medium 
 286Walls and Gates    43.1%Medium 
 156Binary Tree Upside Down    43.3%Medium 
 12Integer to Roman    43.4%Medium 
 360Sort Transformed Array    43.4%Medium 
 378Kth Smallest Element in a Sorted Matrix    43.6%Medium 
 487Max Consecutive Ones II    43.6%Medium 
 144Binary Tree Preorder Traversal    43.6%Medium 
 421Maximum XOR of Two Numbers in an Array    44.0%Medium 
 486Predict the Winner    44.0%Medium 
 320Generalized Abbreviation    44.1%Medium 
 392Is Subsequence    44.2%Medium 
 494Target Sum    44.3%Medium 
 94Binary Tree Inorder Traversal    44.6%Medium 
 4544Sum II    44.9%Medium 
 343Integer Break    45.2%Medium 
 357Count Numbers with Unique Digits    45.4%Medium 
 384Shuffle an Array    45.4%Medium 
 348Design Tic-Tac-Toe    45.6%Medium 
 481Magical String    45.7%Medium 
 294Flip Game II    45.7%Medium 
 477Total Hamming Distance    45.9%Medium 
 445Add Two Numbers II    46.0%Medium 
 503Next Greater Element II    46.3%Medium 
 382Linked List Random Node    46.3%Medium 
 498Diagonal Traverse    46.3%Medium 
 347Top K Frequent Elements    46.7%Medium 
 323Number of Connected Components in an Undirected Graph    47.2%Medium 
 238Product of Array Except Self    47.8%Medium 
 531Lonely Pixel I   New 48.3%Medium 
 281Zigzag Iterator    49.2%Medium 
 245Shortest Word Distance III    49.6%Medium 
 439Ternary Expression Parser    49.9%Medium 
 260Single Number III    49.9%Medium 
 451Sort Characters By Frequency    50.2%Medium 
 311Sparse Matrix Multiplication    50.7%Medium 
 364Nested List Weight Sum II    50.8%Medium 
 462Minimum Moves to Equal Array Elements II    51.1%Medium 
 484Find Permutation    51.5%Medium 
 495Teemo Attacking    51.6%Medium 
 529Minesweeper    51.6%Medium 
 526Beautiful Arrangement    51.6%Medium 
 508Most Frequent Subtree Sum    51.9%Medium 
 442Find All Duplicates in an Array    52.2%Medium 
 515Find Largest Value in Each Tree Row    52.8%Medium 
 362Design Hit Counter    53.2%Medium 
 369Plus One Linked List    53.6%Medium 
 370Range Addition    54.5%Medium 
 413Arithmetic Slices    54.7%Medium 
 406Queue Reconstruction by Height    54.7%Medium 
 513Find Bottom Left Tree Value    55.8%Medium 
 280Wiggle Sort    55.8%Medium 
 366Find Leaves of Binary Tree    58.0%Medium 
 338Counting Bits    60.0%Medium 
 419Battleships in a Board    60.5%Medium 
 535Encode and Decode TinyURL   New 76.6%Medium

 

转载于:https://www.cnblogs.com/charlesblc/p/6525473.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于Python的简单字符界面五子棋人机对战程序,游戏难度中等。 ``` import os # 初始化棋盘 def init_board(): board = [] for i in range(15): board.append(['+'] * 15) return board # 打印棋盘 def print_board(board): os.system('clear') print(' A B C D E F G H I J K L M N O') for i in range(15): print(str(i+1).rjust(2), end=' ') for j in range(15): print(board[i][j], end=' ') print() # 判断胜负 def check_win(board, row, col, player): # 判断横向 count = 0 for i in range(max(0, col-4), min(15, col+5)): if board[row][i] == player: count += 1 if count == 5: return True else: count = 0 # 判断纵向 count = 0 for i in range(max(0, row-4), min(15, row+5)): if board[i][col] == player: count += 1 if count == 5: return True else: count = 0 # 判断左上到右下 count = 0 for i in range(max(0, row-col-4), min(15, row-col+5)): if board[i][i+col-row] == player: count += 1 if count == 5: return True else: count = 0 # 判断右上到左下 count = 0 for i in range(max(0, row+col-14), min(15, row+col-9)): if board[i][row+col-i] == player: count += 1 if count == 5: return True else: count = 0 return False # 人机对战 def human_vs_computer(): board = init_board() player = '+' while True: print_board(board) if player == '+': # 人类玩家 move = input('请输入您的落子位置(如 A3):') col = ord(move[0]) - ord('A') row = int(move[1:]) - 1 if board[row][col] != '+': print('该位置已有棋子,请重新输入!') continue else: # 电脑玩家 print('电脑正在思考...') max_score = -1 for i in range(15): for j in range(15): if board[i][j] == '+': score = evaluate(board, i, j, player) if score > max_score: max_score = score row = i col = j print('电脑落子位置:%s%d' % (chr(col+65), row+1)) input('请按回车键继续...') # 落子 board[row][col] = player # 判断胜负 if check_win(board, row, col, player): print_board(board) print('%s方获胜!' % player) break # 切换玩家 player = '-' if player == '+' else '+' # 评估函数 def evaluate(board, row, col, player): score = 0 for i in range(max(0, row-2), min(15, row+3)): for j in range(max(0, col-2), min(15, col+3)): if board[i][j] != '+': continue score += eval_point(board, i, j, player) return score # 评估单个点的分数 def eval_point(board, row, col, player): score = 0 player2 = '-' if player == '+' else '+' # 判断横向 count = 0 empty = 0 for i in range(max(0, col-4), min(15, col+5)): if board[row][i] == player: count += 1 elif board[row][i] == '+': empty += 1 else: break if count == 4 and empty == 1: score += 100 elif count == 3 and empty == 2: score += 10 elif count == 2 and empty == 3: score += 5 elif count == 1 and empty == 4: score += 1 # 判断纵向 count = 0 empty = 0 for i in range(max(0, row-4), min(15, row+5)): if board[i][col] == player: count += 1 elif board[i][col] == '+': empty += 1 else: break if count == 4 and empty == 1: score += 100 elif count == 3 and empty == 2: score += 10 elif count == 2 and empty == 3: score += 5 elif count == 1 and empty == 4: score += 1 # 判断左上到右下 count = 0 empty = 0 for i in range(max(0, row-col-4), min(15, row-col+5)): if board[i][i+col-row] == player: count += 1 elif board[i][i+col-row] == '+': empty += 1 else: break if count == 4 and empty == 1: score += 100 elif count == 3 and empty == 2: score += 10 elif count == 2 and empty == 3: score += 5 elif count == 1 and empty == 4: score += 1 # 判断右上到左下 count = 0 empty = 0 for i in range(max(0, row+col-14), min(15, row+col-9)): if board[i][row+col-i] == player: count += 1 elif board[i][row+col-i] == '+': empty += 1 else: break if count == 4 and empty == 1: score += 100 elif count == 3 and empty == 2: score += 10 elif count == 2 and empty == 3: score += 5 elif count == 1 and empty == 4: score += 1 # 对手分数 count = 0 empty = 0 for i in range(max(0, col-4), min(15, col+5)): if board[row][i] == player2: count += 1 elif board[row][i] == '+': empty += 1 else: break if count == 4 and empty == 1: score += 90 elif count == 3 and empty == 2: score += 9 elif count == 2 and empty == 3: score += 4 elif count == 1 and empty == 4: score += 0.5 # 判断纵向 count = 0 empty = 0 for i in range(max(0, row-4), min(15, row+5)): if board[i][col] == player2: count += 1 elif board[i][col] == '+': empty += 1 else: break if count == 4 and empty == 1: score += 90 elif count == 3 and empty == 2: score += 9 elif count == 2 and empty == 3: score += 4 elif count == 1 and empty == 4: score += 0.5 # 判断左上到右下 count = 0 empty = 0 for i in range(max(0, row-col-4), min(15, row-col+5)): if board[i][i+col-row] == player2: count += 1 elif board[i][i+col-row] == '+': empty += 1 else: break if count == 4 and empty == 1: score += 90 elif count == 3 and empty == 2: score += 9 elif count == 2 and empty == 3: score += 4 elif count == 1 and empty == 4: score += 0.5 # 判断右上到左下 count = 0 empty = 0 for i in range(max(0, row+col-14), min(15, row+col-9)): if board[i][row+col-i] == player2: count += 1 elif board[i][row+col-i] == '+': empty += 1 else: break if count == 4 and empty == 1: score += 90 elif count == 3 and empty == 2: score += 9 elif count == 2 and empty == 3: score += 4 elif count == 1 and empty == 4: score += 0.5 return score # 主函数 def main(): human_vs_computer() if __name__ == '__main__': main() ``` 这个程序使用了alpha-beta剪枝算法对电脑玩家做出最佳落子选择,思考深度为2层。你可以尝试修改评估函数来改变游戏难度,或修改思考深度来让电脑玩家更聪明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值