------
## 最终结论
```python
def check_valid_string(s: str) -> bool:
    min_left = 0
    max_left = 0

    for char in s:
        if char == '(':
            min_left += 1
            max_left += 1
        elif char == ')':
            min_left -= 1
            max_left -= 1
        else:  # char == '*'
            min_left -= 1
            max_left += 1
        
        # Ensure min_left does not go below zero
        min_left = max(min_left, 0)

        # If at any point max_left is negative, the string is invalid
        if max_left < 0:
            return False
    
    # At the end of the loop, check if min_left is zero
    return min_left == 0
```