Talentd
FleetCode

1405. Longest Happy String

Medium65.5% acceptance8 companies

A string s is called happy if it satisfies the following conditions:

  • s only contains the letters 'a', 'b', and 'c'.
  • s does not contain any of "aaa", "bbb", or "ccc" as a substring.
  • s contains at most a occurrences of the letter 'a'.
  • s contains at most b occurrences of the letter 'b'.
  • s contains at most c occurrences of the letter 'c'.

Given three integers a, b, and c, return the longest possible happy string. If there are multiple longest happy strings, return any of them. If there is no such string, return the empty string "".

A substring is a contiguous sequence of characters within a string.

Example 1:

Input: a = 1, b = 1, c = 7
Output: "ccaccbcc"
Explanation: "ccbccacc" would also be a correct answer.

Example 2:

Input: a = 7, b = 1, c = 0
Output: "aabaa"
Explanation: It is the only correct answer in this case.

Constraints:

  • 0 <= a, b, c <= 100
  • a + b + c > 0

Hints open one at a time

Hint 1
Use a greedy approach.
Hint 2
Use the letter with the maximum current limit that can be added without breaking the condition.
13:10
Still stuck?Read 3 approaches, or watch a walkthrough.
Open solution

Similar problems

Reorganize StringMedium
Loading editor…
1class Solution:
2 def longestDiverseString(self, a: int, b: int, c: int) -> str:
3
Starter codePython 3Spaces: 4
Examples
Input
1
1
7
Input
7
1
0
Your code is saved on this device.Solution