------
## 最终结论
```python
def longest_happy_string(a: int, b: int, c: int) -> str:
    result = ""
    count_a, count_b, count_c = a, b, c

    def add_char(char):
        nonlocal result, count_a, count_b, count_c
        result += char
        if char == 'a':
            count_a -= 1
        elif char == 'b':
            count_b -= 1
        else:
            count_c -= 1

    while True:
        if (count_a >= count_b and count_a >= count_c) and (len(result) < 2 or result[-2:] != "aa"):
            if count_a > 0:
                add_char('a')
                continue
        if (count_b >= count_a and count_b >= count_c) and (len(result) < 2 or result[-2:] != "bb"):
            if count_b > 0:
                add_char('b')
                continue
        if (count_c >= count_a and count_c >= count_b) and (len(result) < 2 or result[-2:] != "cc"):
            if count_c > 0:
                add_char('c')
                continue
        
        break

    return result
```