(Basierend auf diesem Math.SE-Problem , das auch einige Grafiken enthält)
Ich habe einen Stock, der ungefähr so aussieht:

Ich möchte, dass es so aussieht:

Ich bin jedoch kein erfahrener Maler. Bevor ich also ein so ehrgeiziges DIY-Projekt beginne, möchte ich sicherstellen, dass ich nicht über den Kopf komme.
Ihr Programm sollte mir sagen, wie viele Schritte zum Malen dieses Sticks erforderlich sind. Bei jedem Schritt wird ein durchgehender Bereich mit einer Volltonfarbe angestrichen, mit der vorherige Farbschichten abgedeckt werden. Für das obige Beispiel könnte ich die linke Hälfte blau, die rechte Hälfte rot und dann die zwei getrennten grünen Bereiche für insgesamt 4 Schritte malen (das Grün wird nicht durchgehend gemalt).

Hier ist es in ASCII:
------
bbb---
bbbrrr
bgbrrr
bgbrgr
Es gibt verschiedene Möglichkeiten, diesen Stift zu bemalen und das gleiche Ergebnis zu erzielen. Mich interessiert allerdings nur die Zeitschätzung, die vier Schritte umfasst.
Tor
Ihr Programm sollte die Mindestanzahl von Schritten ausgeben, die zum Malen eines Sticks mit einem bestimmten Farbschema erforderlich sind. Das Malschema wird in Form einer Zeichenfolge dargestellt, während die Ausgabe eine Zahl ist. Das ist Code Golf. Kürzeste Sendung gewinnt.
Eingang
Ihr Programm erhält das Farbschema für einen Stick in Form einer Buchstabenfolge. Jeder eindeutige Buchstabe (Groß- und Kleinschreibung beachten) steht für eine eindeutige Farbe.
YRYGR
grG
GyRyGyG
pbgbrgrp
hyghgy
Ausgabe
Diese Zahlen entsprechen der geringsten Anzahl von Schritten, die zum Bemalen der Stifte erforderlich sind.
4
3
4
5
4
Erklärungen
So bin ich zu den oben genannten Zahlen gekommen. Ihr Programm muss dies nicht ausgeben:
-----
YYY--
YRY--
YRYG-
YRYGR
---
g--
gr-
grG
-------
GGGGGGG
GyyyGGG
GyRyGGG
GyRyGyG
--------
pppppppp
pbbbpppp
pbbbrrrp
pbgbrrrp
pbgbrgrp
------
-yyyyy
-ygggy
hygggy
hyghgy
Bearbeiten: Ich werde mehr Testfälle hinzufügen, wenn sie sich als schwierigere Testfälle herausstellen.