```python
def is_sorted(lst):
    '''
    Given a list of numbers, return whether or not they are sorted
    in ascending order. If list has more than 1 duplicate of the same
    number, return False. Assume no negative numbers and only integers.

    Examples
    is_sorted([5]) ➞ True
    is_sorted([1, 2, 3, 4, 5]) ➞ True
    is_sorted([1, 3, 2, 4, 5]) ➞ False
    is_sorted([1, 2, 3, 4, 5, 6]) ➞ True
    is_sorted([1, 2, 3, 4, 5, 6, 7]) ➞ True
    is_sorted([1, 3, 2, 4, 5, 6, 7]) ➞ False
    is_sorted([1, 2, 2, 3, 3, 4]) ➞ True
    is_sorted([1, 2, 2, 2, 3, 4]) ➞ False
    '''
    # Check if the list is sorted in ascending order
    for i in range(len(lst) - 1):
        if lst[i] > lst[i + 1]:
            return False
    
    # Check for duplicates: if any number appears more than once, return False
    # But wait, the example [1, 2, 2, 3, 3, 4] returns True, so duplicates are allowed
    # as long as they don't appear more than once? Let me re-read.
    # "If list has more than 1 duplicate of the same number, return False."
    # This means if a number appears more than 2 times (i.e., more than 1 duplicate), return False.
    # So [1, 2, 2, 3, 3, 4] has each number appearing at most 2 times, so True.
    # [1, 2, 2, 2, 3, 4] has 2 appearing 3 times, so False.
    
    from collections import Counter
    counts = Counter(lst)
    for count in counts.values():
        if count > 2:
            return False
    
    return True
```