Minimum Length of String After Deleting Similar Ends

MediumTwo PointersString

Solution

export function minimumLength(s: string): number {
  let [start, end] = [0, s.length - 1];
  while (start < end && s[start] === s[end]) {
    const char = s[start];
    while (start <= end && s[start] === char) {
      start += 1;
    }
    while (start <= end && s[end] === char) {
      end -= 1;
    }
  }
  return end - start + 1;
}