def longest_substring_with_k_distinct(str1, k):
max_len = 0
start = 0
for idx in range(0, len(str1)):
unique_chars = len(set(str1[start:idx]))
substr_len = len(str1[start:idx])
while unique_chars > k:
start += 1
unique_chars = len(set(str1[start:idx]))
substr_len = len(str1[start:idx])
max_len = max(substr_len, max_len)
return max_len
Yes, the solution you provided is correct. We can use a different approach to solve a problem.