------
## 最终结论
```python
def stoneGame(piles):
    n = len(piles)
    dp = [[0] * n for _ in range(n)]
    
    for i in range(n):
        dp[i][i] = piles[i]
    
    for size in range(2, n + 1):
        for i in range(n - size + 1):
            j = i + size - 1
            dp[i][j] = max(piles[i] - dp[i + 1][j], piles[j] - dp[i][j - 1])
    
    return dp[0][n - 1] > 0

# Example usage:
piles = [5, 3, 4, 5]
print(stoneGame(piles))  # Output: True
```