diff --git a/README.md b/README.md index 51ec42f..db02428 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,31 @@ # Look-and-Say ## Goal -Starting with a digit, count how often this digit occurs in succession. -Then repeat the same procedure for given number of `iterations`. +Given an `iteration-count` generate and output the `look-and-say` sequence. + +The sequence starts with `1`. Subsequent numbers are derived by describing the previous number in terms of consecutive digits. + +To generate an entry of the sequence, examine the previous entry. + +Read off the digits of the previous entry, counting the number of digits in groups of the same digit. + In human terms this is like speaking out loud how often each digit appears consecutively. +**Keep in mind:** the output becomes very long very quickly. + ### Input `iterations` - a numeric value how often the process is repeated ### Output -A numeric value representing a stream of occurrences and digits. +The head of the generated sequence after iterating by the given input. ### Constraints -1 <= `iterations` <= 10 -**Start value** = 1 + * 0 <= `iterations` <= 28 + * **Start value** = 1 ### Examples -Assuming the start value is `0` (**attention:** value differs from real start value for demostraton purposes) and `iteration` is 5: -0\. iteration: `0` (reading: *one 1*) -1\. iteration: `10` (reading: *two 1s*) -2\. iteration: `1110` (reading: *one 2 and one 1*) -3\. iteration: `3110` (reading: *one 1 and one two and two 1s*) -4\. iteration: `132110` (reading: *three 1s and two 2s and one 1*) -5\. iteration: `1113122110` +* for input `0` iterations, output `1`, i.e. the starting value) +* for input `1` iterations, output `11`, i.e. reading the previous entry `1` as `one 1` +* for input `2` iterations, output `21`, i.e. reading the previous entry `11` as `two 1s` +* for input `3` iterations, output `1211`, i.e. reading the previous entry `21` as `one 2 one 1` +* for input `4` iterations, output `111221`, i.e. reading the previous entry `1211` as `one 1 one 2 two 1` \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 0cb2645..43e4058 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = 'run-length-encoding' +rootProject.name = 'look-and-say' diff --git a/src/main/java/Solution.java b/src/main/java/Solution.java index 5615be4..bbc3cb0 100644 --- a/src/main/java/Solution.java +++ b/src/main/java/Solution.java @@ -2,10 +2,6 @@ import java.util.*; import java.io.*; import java.math.*; -/** - * Template code to help you parse the standard input - * according to the problem statement. - **/ class Solution { public static void main( String[] args ) { diff --git a/src/test/resources/testdata.csv b/src/test/resources/testdata.csv index acdca74..38cd61a 100644 --- a/src/test/resources/testdata.csv +++ b/src/test/resources/testdata.csv @@ -4,4 +4,12 @@ 3, 1211 4, 111221 5, 312211 +6, 13112221 +7, 1113213211 8, 31131211131221 +9, 13211311123113112211 +10, 11131221133112132113212221 +15, 132113213221133112132113311211131221121321131211132221123113112221131112311332111213211322211312113211 +19, 11131221131211132221232112111312111213111213211231132132211211131221131211221321123113213221123113112221131112311332211211131221131211132211121312211231131112311211232221121321132132211331121321231231121113112221121321133112132112312321123113112221121113122113121113123112112322111213211322211312113211 +25, 1113122113121113222123211211131211121311121321123113213221121113122123211211131221121311121312211213211321322112311311222113311213212322211211131221131211221321123113213221121113122113121113222112131112131221121321131211132221121321132132211331121321232221123113112221131112311322311211131122211213211331121321122112133221121113122113121113222123211211131211121311121321123113111231131122112213211321322113311213212322211231131122211311123113223112111311222112132113311213211221121332211231131122211311123113321112131221123113111231121113311211131221121321131211132221123113112211121312211231131122113221122112133221121113122113121113222123211211131211121311121321123113213221121113122113121113222113221113122113121113222112132113213221232112111312111213322112311311222113111221221113122112132113121113222112311311222113111221132221231221132221222112112322211213211321322113311213212312311211131122211213211331121321123123211231131122211211131221131112311332211213211321223112111311222112132113213221123123211231132132211231131122211311123113322112111312211312111322111213122112311311123112112322211213211321322113312211223113112221121113122113111231133221121321132132211331121321232221123123211231132132211231131122211331121321232221123113112221131112311332111213122112311311123112112322211211131221131211132221232112111312111213111213211231132132211211131221131211221321123113213221123113112221131112211322212322211231131122211322111312211312111322211213211321322113311213211331121113122122211211132213211231131122212322211331222113112211 +28, 11131221131211132221232112111312111213111213211231132132211211131221232112111312211213111213122112132113213221123113112221133112132123222112111312211312112213211231132132211211131221131211132221121311121312211213211312111322211213211321322113311213212322211231131122211311123113223112111311222112132113311213211221121332211211131221131211132221231122212213211321322112311311222113311213212322211211131221131211132221232112111312111213322112131112131221121321131211132221121321132132212321121113121112133221121321132132211331121321231231121113112221121321133112132112211213322112311311222113111231133211121312211231131122211322311311222112111312211311123113322112132113212231121113112221121321132122211322212221121123222112111312211312111322212321121113121112131112132112311321322112111312212321121113122112131112131221121321132132211231131122111213122112311311222113111221131221221321132132211331121321231231121113112221121321133112132112211213322112311311222113111231133211121312211231131122211322311311222112111312211311123113322112132113212231121113112221121321132122211322212221121123222112311311222113111231133211121312211231131112311211133112111312211213211312111322211231131122111213122112311311222112111331121113112221121113122113121113222112132113213221232112111312111213322112311311222113111221221113122112132113121113222112311311222113111221132221231221132221222112112322211211131221131211132221232112111312111213111213211231132132211211131221232112111312211213111213122112132113213221123113112221133112132123222112111312211312111322212321121113121112133221132211131221131211132221232112111312111213322112132113213221133112132113221321123113213221121113122123211211131221222112112322211231131122211311123113321112132132112211131221131211132221121321132132212321121113121112133221123113112221131112311332111213211322111213111213211231131211132211121311222113321132211221121332211213211321322113311213212312311211131122211213211331121321123123211231131122211211131221131112311332211213211321223112111311222112132113213221123123211231132132211231131122211311123113322112111312211312111322111213122112311311123112112322211213211321322113312211223113112221121113122113111231133221121321132132211331121321232221123123211231132132211231131122211331121321232221123113112221131112311332111213122112311311123112112322211211131221131211132221232112111312211322111312211213211312111322211231131122111213122112311311221132211221121332211213211321322113311213212312311211131211131221223113112221131112311332211211131221131211132211121312211231131112311211232221121321132132211331121321231231121113112221121321133112132112211213322112312321123113213221123113112221133112132123222112311311222113111231132231121113112221121321133112132112211213322112311311222113111231133211121312211231131112311211133112111312211213211312111322211231131122111213122112311311221132211221121332211211131221131211132221232112111312111213111213211231132132211211131221232112111312211213111213122112132113213221123113112221133112132123222112111312211312111322212311222122132113213221123113112221133112132123222112311311222113111231133211121321132211121311121321122112133221123113112221131112311332211322111312211312111322212321121113121112133221121321132132211331121321231231121113112221121321132122311211131122211211131221131211322113322112111312211322132113213221123113112221131112311311121321122112132231121113122113322113111221131221 \ No newline at end of file