Please solve the programming task below using a self-contained code snippet in a markdown code block.

You are given an integer array ranks and a character array suits. You have 5 cards where the ith card has a rank of ranks[i] and a suit of suits[i].
The following are the types of poker hands you can make from best to worst:

"Flush": Five cards of the same suit.
"Three of a Kind": Three cards of the same rank.
"Pair": Two cards of the same rank.
"High Card": Any single card.

Return a string representing the best type of poker hand you can make with the given cards.
Note that the return values are case-sensitive.
 
Please complete the following python code precisely:
```python
class Solution:
    def bestHand(self, ranks: List[int], suits: List[str]) -> str:
```