Permutation game Discussions | | HackerRank

Permutation game

  • + 0 comments

    Recursion with memorization solution:

    def permutationGame(arr):
        memo = {}
        def canWin(subArray):
            if tuple(subArray) in memo:
                return memo[tuple(subArray)]
                
            if subArray == sorted(subArray):
                memo[tuple(subArray)] = False
                return False
            
            for i in range(len(subArray)):
                newArray = subArray[:i] + subArray[i+1:]
                if not canWin(newArray):
                    memo[tuple(subArray)] = True
                    return True
            memo[tuple(subArray)] = False
            return False
            
        return "Alice" if canWin(arr) else "Bob"