( Bazı grafikler de sağlayan bu Math.SE problemine dayanarak )
Ben böyle bir sopa var:

Bunun gibi görünmesini istiyorum:

Bununla birlikte, uzman bir ressam değilim, bu yüzden iddialı bir DIY projesine başlamadan önce, başımın üstünde olmadığımdan emin olmak istiyorum.
Programınız bana bu çubuğu boyamak için kaç adımın dahil olduğunu söylemelidir. Her adım, önceki boya katmanlarını kapsayan düz bir renkle sürekli bir alanın boyanmasını içerir. Yukarıdaki örnek için, sol yarıyı mavi, sağ yarısını kırmızı ve ardından iki ayrı yeşil alanı toplam 4 adımda boyayabilirim (yeşil sürekli boyanmaz).

İşte ASCII'de:
------
bbb---
bbbrrr
bgbrrr
bgbrgr
Bu çubuğu boyamanın ve aynı sonuçla sonuçlanmanın birkaç farklı yolu vardır. Ben sadece zaman tahmini ile ilgileniyorum, ancak bu dört adım.
Hedef
Programınız, belirli bir renk şemasına sahip bir çubuğu boyamak için gereken minimum adım sayısını vermelidir. Boya şeması bir karakter dizisi biçiminde olurken çıktı bir sayı olacaktır. Bu kod golf. En kısa program kazanır.
Giriş
Programınız bir dizi harf şeklinde bir çubuğun renklendirme şemasını alacaktır. Her benzersiz harf (büyük / küçük harfe duyarlı) benzersiz bir rengi temsil eder.
YRYGR
grG
GyRyGyG
pbgbrgrp
hyghgy
Çıktı
Bu sayılar, çubukları boyamak için gereken en az adımdır.
4
3
4
5
4
açıklamalar
Yukarıdaki sayılara bu şekilde ulaştım. Programınızın bunun çıktısını almasına gerek yoktur:
-----
YYY--
YRY--
YRYG-
YRYGR
---
g--
gr-
grG
-------
GGGGGGG
GyyyGGG
GyRyGGG
GyRyGyG
--------
pppppppp
pbbbpppp
pbbbrrrp
pbgbrrrp
pbgbrgrp
------
-yyyyy
-ygggy
hygggy
hyghgy
Düzenleme: Daha zor test senaryoları olduklarını kanıtlarsanız daha fazla test örneği ekleyeceğim.