Публикували сме десетото предизвикателство на обичайното място. Имате време до петък на обяд, като и този път примерните тестове ще са от вас :)
Десето предизвикателство
Ето малко тестове:
describe "String.longest_sequence" do it "works with repeated sequence" do 'aaaaabbbbbddacccc'.longest_sequence.should =~ ['b', 'a'] end it "works with special symbol that needs to be escaped" do "\"".longest_sequence.should eq ["\""] '\''.longest_sequence.should eq ["'"] '\\'.longest_sequence.should eq ['\\'] end it "works when there's not any longest sequence" do 'asdfgh'.longest_sequence.should =~ ['a', 's', 'd', 'g', 'f', 'h'] end it "works with empty string" do ''.longest_sequence.should eq [] end it "works with utf-8 symbols" do 'بسم'.longest_sequence.should =~ ['ب','س','م'] '✓✓✓بسم'.longest_sequence.should eq ["\u2713".encode('utf-8')] end it "works with unprintable symbols" do ("дадада" + "\u2029".encode('utf-8') + "\u2029".encode('utf-8')).longest_sequence.should eq ["\u2029".encode('utf-8')] # U+2029 is the paragraph separator end end
ПП не знам дали това е очакваното поведение при празен низ, но да връща празен списък ми се струва най-логичното.
Имам въпрос, при низ:
"aaabbbaaa"
резултата["a","b"]
ли трябва да е или["a","b","a"]
?Според мен би следвало да е
["a", "b"]
, защото пише, че "връща масив от тези символи в низа, които имат най-дълги последователности в него", а символа"a"
вече го има.С какви символи трябва да работи (стандартните ASCII или и други)?
@Ангел, @Мария Терзиева е права.
@Мария Митева – с всякакви символи. Ако бяхме в 80-те на миналия век, може би само ASCII щеше да е окей, но през 2013 г. нямаме избор... :)
A не разбрах за празния стринг празен масив ли връща :?
Ванка, би трябвало да е празен масив - "връща масив от тези символи в низа, които имат най-дълги последователности в него", т.е. празен масив.
Малко късничко, но все пак - http://rubular.com/.
@Иван, да, празен масив, логично е.
@Сашо, Росен те е изпреварил :)
Решението и тестовете на десетото предизвикателство са качени в ruby-homework.
Трябва да сте влезли в системата, за да може да отговаряте на теми.