How many consecutive descending numbers in my number?
2019 has come and probably everyone has noticed the peculiarity of this number: it's in fact composed by two sub-numbers (20 and 19) representing a sequence of consecutive descending numbers.
Challenge
Given a number x
, return the length of the maximum sequence of consecutive, descending numbers that can be formed by taking sub-numbers of x
.
Notes :
- sub-numbers cannot contain leading zeros (e.g.
1009
cannot be split into10
,09
) - consecutive and descending means that a number in the sequence must be equal to the previous number -1, or $n_{i+1} = n_{i}-1$ (e.g.
52
cannot be split into5,2
because5
and2
are not consecutive,2 ≠ 5 - 1
) - the sequence must be obtained by using the full number, e.g. in
7321
you can't discard7
and get the sequence3
,2
,1
- only one sequence can be obtained from the number, e.g.
3211098
cannot be split into two sequences3
,2
,1
and10
,9
,8
Input
- An integer number (
>= 0
) : can be a number, or a string, or list of digits
Output
- A single integer given the maximum number of decreasing sub-numbers (note that the lower-bound of this number is
1
, i.e. a number is composed by itself in a descending sequence of length one)
Examples :
2019 --> 20,19 --> output : 2
201200199198 --> 201,200,199,198 --> output : 4
3246 --> 3246 --> output : 1
87654 --> 8,7,6,5,4 --> output : 5
123456 --> 123456 --> output : 1
1009998 --> 100,99,98 --> output : 3
100908 --> 100908 --> output : 1
1110987 --> 11,10,9,8,7 --> output : 5
210 --> 2,1,0 --> output : 3
1 --> 1 --> output : 1
0 --> 0 --> output : 1
312 --> 312 --> output : 1
191 --> 191 --> output : 1
General rules:
- This is code-golf, so shortest answer in bytes wins.
Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.
Standard rules apply for your answer with default I/O rules, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.
Default Loopholes are forbidden.- If possible, please add a link with a test for your code (i.e. TIO).
- Also, adding an explanation for your answer is highly recommended.
code-golf
add a comment |
2019 has come and probably everyone has noticed the peculiarity of this number: it's in fact composed by two sub-numbers (20 and 19) representing a sequence of consecutive descending numbers.
Challenge
Given a number x
, return the length of the maximum sequence of consecutive, descending numbers that can be formed by taking sub-numbers of x
.
Notes :
- sub-numbers cannot contain leading zeros (e.g.
1009
cannot be split into10
,09
) - consecutive and descending means that a number in the sequence must be equal to the previous number -1, or $n_{i+1} = n_{i}-1$ (e.g.
52
cannot be split into5,2
because5
and2
are not consecutive,2 ≠ 5 - 1
) - the sequence must be obtained by using the full number, e.g. in
7321
you can't discard7
and get the sequence3
,2
,1
- only one sequence can be obtained from the number, e.g.
3211098
cannot be split into two sequences3
,2
,1
and10
,9
,8
Input
- An integer number (
>= 0
) : can be a number, or a string, or list of digits
Output
- A single integer given the maximum number of decreasing sub-numbers (note that the lower-bound of this number is
1
, i.e. a number is composed by itself in a descending sequence of length one)
Examples :
2019 --> 20,19 --> output : 2
201200199198 --> 201,200,199,198 --> output : 4
3246 --> 3246 --> output : 1
87654 --> 8,7,6,5,4 --> output : 5
123456 --> 123456 --> output : 1
1009998 --> 100,99,98 --> output : 3
100908 --> 100908 --> output : 1
1110987 --> 11,10,9,8,7 --> output : 5
210 --> 2,1,0 --> output : 3
1 --> 1 --> output : 1
0 --> 0 --> output : 1
312 --> 312 --> output : 1
191 --> 191 --> output : 1
General rules:
- This is code-golf, so shortest answer in bytes wins.
Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.
Standard rules apply for your answer with default I/O rules, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.
Default Loopholes are forbidden.- If possible, please add a link with a test for your code (i.e. TIO).
- Also, adding an explanation for your answer is highly recommended.
code-golf
Migrated from sandbox : codegolf.meta.stackexchange.com/questions/2140/…
– digEmAll
19 hours ago
Suggested test case:1 --> 1
.
– Kamil Drakari
14 hours ago
Additional suggested test cases:312 --> 1
and191 --> 1
to ensure answers aren't truncating the first or last number (13,12 and 19,18 in these cases).
– Kamil Drakari
13 hours ago
1
Is the test case210 -> 2,1,0
wrong (same with0 -> 0
)? The tasks says "sub-numbers cannot contain leading zeros", is zero a special case?
– BMO
13 hours ago
1
@BMO: well, here the topic is kinda phylosofical... :D to me, 0 is a number with no (useless) leading zero, so yes zero is a special case
– digEmAll
13 hours ago
add a comment |
2019 has come and probably everyone has noticed the peculiarity of this number: it's in fact composed by two sub-numbers (20 and 19) representing a sequence of consecutive descending numbers.
Challenge
Given a number x
, return the length of the maximum sequence of consecutive, descending numbers that can be formed by taking sub-numbers of x
.
Notes :
- sub-numbers cannot contain leading zeros (e.g.
1009
cannot be split into10
,09
) - consecutive and descending means that a number in the sequence must be equal to the previous number -1, or $n_{i+1} = n_{i}-1$ (e.g.
52
cannot be split into5,2
because5
and2
are not consecutive,2 ≠ 5 - 1
) - the sequence must be obtained by using the full number, e.g. in
7321
you can't discard7
and get the sequence3
,2
,1
- only one sequence can be obtained from the number, e.g.
3211098
cannot be split into two sequences3
,2
,1
and10
,9
,8
Input
- An integer number (
>= 0
) : can be a number, or a string, or list of digits
Output
- A single integer given the maximum number of decreasing sub-numbers (note that the lower-bound of this number is
1
, i.e. a number is composed by itself in a descending sequence of length one)
Examples :
2019 --> 20,19 --> output : 2
201200199198 --> 201,200,199,198 --> output : 4
3246 --> 3246 --> output : 1
87654 --> 8,7,6,5,4 --> output : 5
123456 --> 123456 --> output : 1
1009998 --> 100,99,98 --> output : 3
100908 --> 100908 --> output : 1
1110987 --> 11,10,9,8,7 --> output : 5
210 --> 2,1,0 --> output : 3
1 --> 1 --> output : 1
0 --> 0 --> output : 1
312 --> 312 --> output : 1
191 --> 191 --> output : 1
General rules:
- This is code-golf, so shortest answer in bytes wins.
Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.
Standard rules apply for your answer with default I/O rules, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.
Default Loopholes are forbidden.- If possible, please add a link with a test for your code (i.e. TIO).
- Also, adding an explanation for your answer is highly recommended.
code-golf
2019 has come and probably everyone has noticed the peculiarity of this number: it's in fact composed by two sub-numbers (20 and 19) representing a sequence of consecutive descending numbers.
Challenge
Given a number x
, return the length of the maximum sequence of consecutive, descending numbers that can be formed by taking sub-numbers of x
.
Notes :
- sub-numbers cannot contain leading zeros (e.g.
1009
cannot be split into10
,09
) - consecutive and descending means that a number in the sequence must be equal to the previous number -1, or $n_{i+1} = n_{i}-1$ (e.g.
52
cannot be split into5,2
because5
and2
are not consecutive,2 ≠ 5 - 1
) - the sequence must be obtained by using the full number, e.g. in
7321
you can't discard7
and get the sequence3
,2
,1
- only one sequence can be obtained from the number, e.g.
3211098
cannot be split into two sequences3
,2
,1
and10
,9
,8
Input
- An integer number (
>= 0
) : can be a number, or a string, or list of digits
Output
- A single integer given the maximum number of decreasing sub-numbers (note that the lower-bound of this number is
1
, i.e. a number is composed by itself in a descending sequence of length one)
Examples :
2019 --> 20,19 --> output : 2
201200199198 --> 201,200,199,198 --> output : 4
3246 --> 3246 --> output : 1
87654 --> 8,7,6,5,4 --> output : 5
123456 --> 123456 --> output : 1
1009998 --> 100,99,98 --> output : 3
100908 --> 100908 --> output : 1
1110987 --> 11,10,9,8,7 --> output : 5
210 --> 2,1,0 --> output : 3
1 --> 1 --> output : 1
0 --> 0 --> output : 1
312 --> 312 --> output : 1
191 --> 191 --> output : 1
General rules:
- This is code-golf, so shortest answer in bytes wins.
Don't let code-golf languages discourage you from posting answers with non-codegolfing languages. Try to come up with an as short as possible answer for 'any' programming language.
Standard rules apply for your answer with default I/O rules, so you are allowed to use STDIN/STDOUT, functions/method with the proper parameters and return-type, full programs. Your call.
Default Loopholes are forbidden.- If possible, please add a link with a test for your code (i.e. TIO).
- Also, adding an explanation for your answer is highly recommended.
code-golf
code-golf
edited 5 hours ago
Veskah
82414
82414
asked 19 hours ago
digEmAll
2,579411
2,579411
Migrated from sandbox : codegolf.meta.stackexchange.com/questions/2140/…
– digEmAll
19 hours ago
Suggested test case:1 --> 1
.
– Kamil Drakari
14 hours ago
Additional suggested test cases:312 --> 1
and191 --> 1
to ensure answers aren't truncating the first or last number (13,12 and 19,18 in these cases).
– Kamil Drakari
13 hours ago
1
Is the test case210 -> 2,1,0
wrong (same with0 -> 0
)? The tasks says "sub-numbers cannot contain leading zeros", is zero a special case?
– BMO
13 hours ago
1
@BMO: well, here the topic is kinda phylosofical... :D to me, 0 is a number with no (useless) leading zero, so yes zero is a special case
– digEmAll
13 hours ago
add a comment |
Migrated from sandbox : codegolf.meta.stackexchange.com/questions/2140/…
– digEmAll
19 hours ago
Suggested test case:1 --> 1
.
– Kamil Drakari
14 hours ago
Additional suggested test cases:312 --> 1
and191 --> 1
to ensure answers aren't truncating the first or last number (13,12 and 19,18 in these cases).
– Kamil Drakari
13 hours ago
1
Is the test case210 -> 2,1,0
wrong (same with0 -> 0
)? The tasks says "sub-numbers cannot contain leading zeros", is zero a special case?
– BMO
13 hours ago
1
@BMO: well, here the topic is kinda phylosofical... :D to me, 0 is a number with no (useless) leading zero, so yes zero is a special case
– digEmAll
13 hours ago
Migrated from sandbox : codegolf.meta.stackexchange.com/questions/2140/…
– digEmAll
19 hours ago
Migrated from sandbox : codegolf.meta.stackexchange.com/questions/2140/…
– digEmAll
19 hours ago
Suggested test case:
1 --> 1
.– Kamil Drakari
14 hours ago
Suggested test case:
1 --> 1
.– Kamil Drakari
14 hours ago
Additional suggested test cases:
312 --> 1
and 191 --> 1
to ensure answers aren't truncating the first or last number (13,12 and 19,18 in these cases).– Kamil Drakari
13 hours ago
Additional suggested test cases:
312 --> 1
and 191 --> 1
to ensure answers aren't truncating the first or last number (13,12 and 19,18 in these cases).– Kamil Drakari
13 hours ago
1
1
Is the test case
210 -> 2,1,0
wrong (same with 0 -> 0
)? The tasks says "sub-numbers cannot contain leading zeros", is zero a special case?– BMO
13 hours ago
Is the test case
210 -> 2,1,0
wrong (same with 0 -> 0
)? The tasks says "sub-numbers cannot contain leading zeros", is zero a special case?– BMO
13 hours ago
1
1
@BMO: well, here the topic is kinda phylosofical... :D to me, 0 is a number with no (useless) leading zero, so yes zero is a special case
– digEmAll
13 hours ago
@BMO: well, here the topic is kinda phylosofical... :D to me, 0 is a number with no (useless) leading zero, so yes zero is a special case
– digEmAll
13 hours ago
add a comment |
9 Answers
9
active
oldest
votes
JavaScript (ES6), 66 bytes
Takes input as a string.
f=(s,n=x='',o=p=n,i=0)=>s[i++]?o==s?i:f(s,--n,o+n,i):f(s,p+s[x++])
Try it online!
add a comment |
Jelly, 15 9 bytes
Bugfix thanks to Dennis
ŻṚẆDfŒṖẈṀ
Try it online! (even 321
takes half a minute since the code is at least $O(N^2)$)
How?
ŻṚẆDfŒṖẈṀ - Link: integer, n
Ż - [0..n]
Ṛ - reverse
Ẇ - all contiguous slices (of implicit range(n)) = [[n],...,[2],[1],[0],[n,n-1],...,[2,1],[1,0],...,[n,n-1,n-2,...,2,1,0]]
D - to decimal (vectorises)
ŒṖ - partitions of (implicit decimal digits of) n
f - filter discard from left if in right
Ẉ - length of each
Ṁ - maximum
add a comment |
Perl 6, 43 41 bytes
{/(<-[0]>.*?|0)+<?{2>set 1..*Z+$0}>/;+$0}
Try it online!
Regex based solution. I'm trying to come up with a better way to match from a descending list instead, but Perl 6 doesn't do partitions well
Explanation:
{ } # Anonymous code block
/ /; # Match in the input
<-[0]>.*? # Non-greedy number not starting with 0
|0 # Or 0
( )+ # Repeatedly for the rest of the number
<?{ }> # Where
1..*Z+$0 # Each matched number plus the ascending numbers
# For example 1,2,3 Z+ 9,8,7 is 10,10,10
set # Coerced to a set
2> # Is smaller than length 2?
+$0 # Return the length of the list
add a comment |
05AB1E, 10 bytes
ÝRŒʒJQ}€gà
Extremely slow, so the TIO below only works for test cases below 750..
Try it online.
Explanation:
Ý # Create a list in the range [0, (implicit) input]
# i.e. 109 → [0,1,2,...,107,108,109]
R # Reverse it
# i.e. [0,1,2,...,107,108,109] → [109,108,107,...,2,1,0]
Œ # Get all possible sublists of this list
# i.e. [109,108,107,...,2,1,0]
# → [[109],[109,108],[109,108,107],...,[2,1,0],[1],[1,0],[0]]
ʒ } # Filter it by:
J # Where the sublist joined together
# i.e. [10,9] → "109"
# i.e. [109,108,107] → "109108107"
Q # Are equal to the (implicit) input
# i.e. 109 and "109" → 1 (truthy)
# i.e. 109 and "109108107" → 0 (falsey)
€g # After filtering, take the length of each remaining inner list
# i.e. [[109],[[10,9]] → [1,2]
à # And only leave the maximum length (which is output implicitly)
# i.e. [1,2] → 2
add a comment |
Pyth, 16 bytes
lef!.EhM.+vMT./z
Try it online here, or verify all the test cases at once here.
lef!.EhM.+vMT./z Implicit: z=input as string
./z Get all divisions of z into disjoint substrings
f Filter the above, as T, keeping those where the following is truthy:
vMT Parse each substring as an int
.+ Get difference between each pair
hM Increment each
!.E Are all elements 0? { NOT(ANY(...)) }
e Take the last element of the filtered divisions
Divisions are generated with fewest substrings first, so last remaining division is also the longest
l Length of the above, implicit print
add a comment |
Japt, 30 bytes
;õ0 Ô+J f,+Uì q",?" +J mèJ ²ÎÉ
Try it online! or Check most test cases
This doesn't score well, but it uses a unique method and there might be room to golf it a lot more. It also performs well enough that all test cases other than 201200199198
avoid timing out.
Explanation:
; #Set J = ","
õ0 #Get the range [0...input]
Ô #Reverse it
+J #Add a comma to the end, casting to a string by joining with ","
f #Get the substring that matches this regex:
, # Starts with a comma
+Uì # Has all the digits of the input
q",?" # Optionally, there can be commas between any digits
+J # Ends with a comma
mèJ #Count the number of commas in the result
²Î #Use 2 instead if no substring matched
É #Subtract 1
add a comment |
Jelly, 11 bytes
ŒṖḌ’DɗƑƇẈṀ
Byte for byte, no match for the other Jelly solution, but this one should be roughly $Oleft(n^{0.3}right)$.
Try it online!
How it works
ŒṖḌ’DɗƑƇẈṀ Main link. Argument: n (integer)
ŒṖ Yield all partitions of n's digit list in base 10.
Ƈ Comb; keep only partitions for which the link to the left returns 1.
Ƒ Fixed; yield 1 if calling the link to the left returns its argument.
Cumulatively reduce the partition by the link to the left.
ɗ Combine the three links to the left into a dyadic chain.
Ḍ Undecimal; convert a digit list into an integer.
’ Decrement the result.
D Decimal; convert the integer back to a digit list.
add a comment |
Charcoal, 26 bytes
F⊕LθF⊕Lθ⊞υ⭆κ⁻I…θιλI﹪⌕υθ⊕Lθ
Try it online! Link is to verbose version of code. Explanation:
F⊕Lθ
Loop i
from 0 to the length of the input.
F⊕Lθ
Loop k
from 0 to the length of the input.
⊞υ⭆κ⁻I…θ⊕ιλ
Calculate the first k
numbers in the descending sequence starting from the number given by the first i
digits of the input, concatenate them, and accumulate each resulting string in the predefined empty list.
I﹪⌕υθ⊕Lθ
Find the position of the first matching copy of the input and reduce it modulo 1 more than the length of the input.
Example: For an input of 2019
the following strings are generated:
0
1 0
2 0-1
3 0-1-2
4 0-1-2-3
5
6 2
7 21
8 210
9 210-1
10
11 20
12 2019
13 201918
14 20191817
15
16 201
17 201200
18 201200199
19 201200199198
20
21 2019
22 20192018
23 201920182017
24 2019201820172016
2019
is then found at index 12, which is reduced modulo 5 to give 2, the desired answer.
add a comment |
Python 3, 302 282 bytes
Takes input as a string. Basically, it takes increasing larger slices of the number from the left, and sees if for that slice of the number a sequence can be formed using all the numbers.
def g(n,m,t=1):
for i in range(1,len(m)+1):
if int(m)==int(n[:i])+1:
if i==len(n):return t+1
return g(n[i:],n[:i],t+1)
return 1
def f(n):
for i in range(len(n)):
x=n[:i]
for j in range(1,len(x)+1):
if (int(x)==int(n[i:i+j])+1)*int(n[i]):return g(n[i:],x)
return 1
Try it online!
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "200"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f178373%2fhow-many-consecutive-descending-numbers-in-my-number%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
9 Answers
9
active
oldest
votes
9 Answers
9
active
oldest
votes
active
oldest
votes
active
oldest
votes
JavaScript (ES6), 66 bytes
Takes input as a string.
f=(s,n=x='',o=p=n,i=0)=>s[i++]?o==s?i:f(s,--n,o+n,i):f(s,p+s[x++])
Try it online!
add a comment |
JavaScript (ES6), 66 bytes
Takes input as a string.
f=(s,n=x='',o=p=n,i=0)=>s[i++]?o==s?i:f(s,--n,o+n,i):f(s,p+s[x++])
Try it online!
add a comment |
JavaScript (ES6), 66 bytes
Takes input as a string.
f=(s,n=x='',o=p=n,i=0)=>s[i++]?o==s?i:f(s,--n,o+n,i):f(s,p+s[x++])
Try it online!
JavaScript (ES6), 66 bytes
Takes input as a string.
f=(s,n=x='',o=p=n,i=0)=>s[i++]?o==s?i:f(s,--n,o+n,i):f(s,p+s[x++])
Try it online!
answered 19 hours ago
Arnauld
72.6k689306
72.6k689306
add a comment |
add a comment |
Jelly, 15 9 bytes
Bugfix thanks to Dennis
ŻṚẆDfŒṖẈṀ
Try it online! (even 321
takes half a minute since the code is at least $O(N^2)$)
How?
ŻṚẆDfŒṖẈṀ - Link: integer, n
Ż - [0..n]
Ṛ - reverse
Ẇ - all contiguous slices (of implicit range(n)) = [[n],...,[2],[1],[0],[n,n-1],...,[2,1],[1,0],...,[n,n-1,n-2,...,2,1,0]]
D - to decimal (vectorises)
ŒṖ - partitions of (implicit decimal digits of) n
f - filter discard from left if in right
Ẉ - length of each
Ṁ - maximum
add a comment |
Jelly, 15 9 bytes
Bugfix thanks to Dennis
ŻṚẆDfŒṖẈṀ
Try it online! (even 321
takes half a minute since the code is at least $O(N^2)$)
How?
ŻṚẆDfŒṖẈṀ - Link: integer, n
Ż - [0..n]
Ṛ - reverse
Ẇ - all contiguous slices (of implicit range(n)) = [[n],...,[2],[1],[0],[n,n-1],...,[2,1],[1,0],...,[n,n-1,n-2,...,2,1,0]]
D - to decimal (vectorises)
ŒṖ - partitions of (implicit decimal digits of) n
f - filter discard from left if in right
Ẉ - length of each
Ṁ - maximum
add a comment |
Jelly, 15 9 bytes
Bugfix thanks to Dennis
ŻṚẆDfŒṖẈṀ
Try it online! (even 321
takes half a minute since the code is at least $O(N^2)$)
How?
ŻṚẆDfŒṖẈṀ - Link: integer, n
Ż - [0..n]
Ṛ - reverse
Ẇ - all contiguous slices (of implicit range(n)) = [[n],...,[2],[1],[0],[n,n-1],...,[2,1],[1,0],...,[n,n-1,n-2,...,2,1,0]]
D - to decimal (vectorises)
ŒṖ - partitions of (implicit decimal digits of) n
f - filter discard from left if in right
Ẉ - length of each
Ṁ - maximum
Jelly, 15 9 bytes
Bugfix thanks to Dennis
ŻṚẆDfŒṖẈṀ
Try it online! (even 321
takes half a minute since the code is at least $O(N^2)$)
How?
ŻṚẆDfŒṖẈṀ - Link: integer, n
Ż - [0..n]
Ṛ - reverse
Ẇ - all contiguous slices (of implicit range(n)) = [[n],...,[2],[1],[0],[n,n-1],...,[2,1],[1,0],...,[n,n-1,n-2,...,2,1,0]]
D - to decimal (vectorises)
ŒṖ - partitions of (implicit decimal digits of) n
f - filter discard from left if in right
Ẉ - length of each
Ṁ - maximum
edited 10 hours ago
answered 18 hours ago
Jonathan Allan
50.8k534165
50.8k534165
add a comment |
add a comment |
Perl 6, 43 41 bytes
{/(<-[0]>.*?|0)+<?{2>set 1..*Z+$0}>/;+$0}
Try it online!
Regex based solution. I'm trying to come up with a better way to match from a descending list instead, but Perl 6 doesn't do partitions well
Explanation:
{ } # Anonymous code block
/ /; # Match in the input
<-[0]>.*? # Non-greedy number not starting with 0
|0 # Or 0
( )+ # Repeatedly for the rest of the number
<?{ }> # Where
1..*Z+$0 # Each matched number plus the ascending numbers
# For example 1,2,3 Z+ 9,8,7 is 10,10,10
set # Coerced to a set
2> # Is smaller than length 2?
+$0 # Return the length of the list
add a comment |
Perl 6, 43 41 bytes
{/(<-[0]>.*?|0)+<?{2>set 1..*Z+$0}>/;+$0}
Try it online!
Regex based solution. I'm trying to come up with a better way to match from a descending list instead, but Perl 6 doesn't do partitions well
Explanation:
{ } # Anonymous code block
/ /; # Match in the input
<-[0]>.*? # Non-greedy number not starting with 0
|0 # Or 0
( )+ # Repeatedly for the rest of the number
<?{ }> # Where
1..*Z+$0 # Each matched number plus the ascending numbers
# For example 1,2,3 Z+ 9,8,7 is 10,10,10
set # Coerced to a set
2> # Is smaller than length 2?
+$0 # Return the length of the list
add a comment |
Perl 6, 43 41 bytes
{/(<-[0]>.*?|0)+<?{2>set 1..*Z+$0}>/;+$0}
Try it online!
Regex based solution. I'm trying to come up with a better way to match from a descending list instead, but Perl 6 doesn't do partitions well
Explanation:
{ } # Anonymous code block
/ /; # Match in the input
<-[0]>.*? # Non-greedy number not starting with 0
|0 # Or 0
( )+ # Repeatedly for the rest of the number
<?{ }> # Where
1..*Z+$0 # Each matched number plus the ascending numbers
# For example 1,2,3 Z+ 9,8,7 is 10,10,10
set # Coerced to a set
2> # Is smaller than length 2?
+$0 # Return the length of the list
Perl 6, 43 41 bytes
{/(<-[0]>.*?|0)+<?{2>set 1..*Z+$0}>/;+$0}
Try it online!
Regex based solution. I'm trying to come up with a better way to match from a descending list instead, but Perl 6 doesn't do partitions well
Explanation:
{ } # Anonymous code block
/ /; # Match in the input
<-[0]>.*? # Non-greedy number not starting with 0
|0 # Or 0
( )+ # Repeatedly for the rest of the number
<?{ }> # Where
1..*Z+$0 # Each matched number plus the ascending numbers
# For example 1,2,3 Z+ 9,8,7 is 10,10,10
set # Coerced to a set
2> # Is smaller than length 2?
+$0 # Return the length of the list
edited 7 hours ago
answered 18 hours ago
Jo King
21k248110
21k248110
add a comment |
add a comment |
05AB1E, 10 bytes
ÝRŒʒJQ}€gà
Extremely slow, so the TIO below only works for test cases below 750..
Try it online.
Explanation:
Ý # Create a list in the range [0, (implicit) input]
# i.e. 109 → [0,1,2,...,107,108,109]
R # Reverse it
# i.e. [0,1,2,...,107,108,109] → [109,108,107,...,2,1,0]
Œ # Get all possible sublists of this list
# i.e. [109,108,107,...,2,1,0]
# → [[109],[109,108],[109,108,107],...,[2,1,0],[1],[1,0],[0]]
ʒ } # Filter it by:
J # Where the sublist joined together
# i.e. [10,9] → "109"
# i.e. [109,108,107] → "109108107"
Q # Are equal to the (implicit) input
# i.e. 109 and "109" → 1 (truthy)
# i.e. 109 and "109108107" → 0 (falsey)
€g # After filtering, take the length of each remaining inner list
# i.e. [[109],[[10,9]] → [1,2]
à # And only leave the maximum length (which is output implicitly)
# i.e. [1,2] → 2
add a comment |
05AB1E, 10 bytes
ÝRŒʒJQ}€gà
Extremely slow, so the TIO below only works for test cases below 750..
Try it online.
Explanation:
Ý # Create a list in the range [0, (implicit) input]
# i.e. 109 → [0,1,2,...,107,108,109]
R # Reverse it
# i.e. [0,1,2,...,107,108,109] → [109,108,107,...,2,1,0]
Œ # Get all possible sublists of this list
# i.e. [109,108,107,...,2,1,0]
# → [[109],[109,108],[109,108,107],...,[2,1,0],[1],[1,0],[0]]
ʒ } # Filter it by:
J # Where the sublist joined together
# i.e. [10,9] → "109"
# i.e. [109,108,107] → "109108107"
Q # Are equal to the (implicit) input
# i.e. 109 and "109" → 1 (truthy)
# i.e. 109 and "109108107" → 0 (falsey)
€g # After filtering, take the length of each remaining inner list
# i.e. [[109],[[10,9]] → [1,2]
à # And only leave the maximum length (which is output implicitly)
# i.e. [1,2] → 2
add a comment |
05AB1E, 10 bytes
ÝRŒʒJQ}€gà
Extremely slow, so the TIO below only works for test cases below 750..
Try it online.
Explanation:
Ý # Create a list in the range [0, (implicit) input]
# i.e. 109 → [0,1,2,...,107,108,109]
R # Reverse it
# i.e. [0,1,2,...,107,108,109] → [109,108,107,...,2,1,0]
Œ # Get all possible sublists of this list
# i.e. [109,108,107,...,2,1,0]
# → [[109],[109,108],[109,108,107],...,[2,1,0],[1],[1,0],[0]]
ʒ } # Filter it by:
J # Where the sublist joined together
# i.e. [10,9] → "109"
# i.e. [109,108,107] → "109108107"
Q # Are equal to the (implicit) input
# i.e. 109 and "109" → 1 (truthy)
# i.e. 109 and "109108107" → 0 (falsey)
€g # After filtering, take the length of each remaining inner list
# i.e. [[109],[[10,9]] → [1,2]
à # And only leave the maximum length (which is output implicitly)
# i.e. [1,2] → 2
05AB1E, 10 bytes
ÝRŒʒJQ}€gà
Extremely slow, so the TIO below only works for test cases below 750..
Try it online.
Explanation:
Ý # Create a list in the range [0, (implicit) input]
# i.e. 109 → [0,1,2,...,107,108,109]
R # Reverse it
# i.e. [0,1,2,...,107,108,109] → [109,108,107,...,2,1,0]
Œ # Get all possible sublists of this list
# i.e. [109,108,107,...,2,1,0]
# → [[109],[109,108],[109,108,107],...,[2,1,0],[1],[1,0],[0]]
ʒ } # Filter it by:
J # Where the sublist joined together
# i.e. [10,9] → "109"
# i.e. [109,108,107] → "109108107"
Q # Are equal to the (implicit) input
# i.e. 109 and "109" → 1 (truthy)
# i.e. 109 and "109108107" → 0 (falsey)
€g # After filtering, take the length of each remaining inner list
# i.e. [[109],[[10,9]] → [1,2]
à # And only leave the maximum length (which is output implicitly)
# i.e. [1,2] → 2
edited 18 hours ago
answered 18 hours ago
Kevin Cruijssen
35.9k554188
35.9k554188
add a comment |
add a comment |
Pyth, 16 bytes
lef!.EhM.+vMT./z
Try it online here, or verify all the test cases at once here.
lef!.EhM.+vMT./z Implicit: z=input as string
./z Get all divisions of z into disjoint substrings
f Filter the above, as T, keeping those where the following is truthy:
vMT Parse each substring as an int
.+ Get difference between each pair
hM Increment each
!.E Are all elements 0? { NOT(ANY(...)) }
e Take the last element of the filtered divisions
Divisions are generated with fewest substrings first, so last remaining division is also the longest
l Length of the above, implicit print
add a comment |
Pyth, 16 bytes
lef!.EhM.+vMT./z
Try it online here, or verify all the test cases at once here.
lef!.EhM.+vMT./z Implicit: z=input as string
./z Get all divisions of z into disjoint substrings
f Filter the above, as T, keeping those where the following is truthy:
vMT Parse each substring as an int
.+ Get difference between each pair
hM Increment each
!.E Are all elements 0? { NOT(ANY(...)) }
e Take the last element of the filtered divisions
Divisions are generated with fewest substrings first, so last remaining division is also the longest
l Length of the above, implicit print
add a comment |
Pyth, 16 bytes
lef!.EhM.+vMT./z
Try it online here, or verify all the test cases at once here.
lef!.EhM.+vMT./z Implicit: z=input as string
./z Get all divisions of z into disjoint substrings
f Filter the above, as T, keeping those where the following is truthy:
vMT Parse each substring as an int
.+ Get difference between each pair
hM Increment each
!.E Are all elements 0? { NOT(ANY(...)) }
e Take the last element of the filtered divisions
Divisions are generated with fewest substrings first, so last remaining division is also the longest
l Length of the above, implicit print
Pyth, 16 bytes
lef!.EhM.+vMT./z
Try it online here, or verify all the test cases at once here.
lef!.EhM.+vMT./z Implicit: z=input as string
./z Get all divisions of z into disjoint substrings
f Filter the above, as T, keeping those where the following is truthy:
vMT Parse each substring as an int
.+ Get difference between each pair
hM Increment each
!.E Are all elements 0? { NOT(ANY(...)) }
e Take the last element of the filtered divisions
Divisions are generated with fewest substrings first, so last remaining division is also the longest
l Length of the above, implicit print
answered 17 hours ago
Sok
3,587722
3,587722
add a comment |
add a comment |
Japt, 30 bytes
;õ0 Ô+J f,+Uì q",?" +J mèJ ²ÎÉ
Try it online! or Check most test cases
This doesn't score well, but it uses a unique method and there might be room to golf it a lot more. It also performs well enough that all test cases other than 201200199198
avoid timing out.
Explanation:
; #Set J = ","
õ0 #Get the range [0...input]
Ô #Reverse it
+J #Add a comma to the end, casting to a string by joining with ","
f #Get the substring that matches this regex:
, # Starts with a comma
+Uì # Has all the digits of the input
q",?" # Optionally, there can be commas between any digits
+J # Ends with a comma
mèJ #Count the number of commas in the result
²Î #Use 2 instead if no substring matched
É #Subtract 1
add a comment |
Japt, 30 bytes
;õ0 Ô+J f,+Uì q",?" +J mèJ ²ÎÉ
Try it online! or Check most test cases
This doesn't score well, but it uses a unique method and there might be room to golf it a lot more. It also performs well enough that all test cases other than 201200199198
avoid timing out.
Explanation:
; #Set J = ","
õ0 #Get the range [0...input]
Ô #Reverse it
+J #Add a comma to the end, casting to a string by joining with ","
f #Get the substring that matches this regex:
, # Starts with a comma
+Uì # Has all the digits of the input
q",?" # Optionally, there can be commas between any digits
+J # Ends with a comma
mèJ #Count the number of commas in the result
²Î #Use 2 instead if no substring matched
É #Subtract 1
add a comment |
Japt, 30 bytes
;õ0 Ô+J f,+Uì q",?" +J mèJ ²ÎÉ
Try it online! or Check most test cases
This doesn't score well, but it uses a unique method and there might be room to golf it a lot more. It also performs well enough that all test cases other than 201200199198
avoid timing out.
Explanation:
; #Set J = ","
õ0 #Get the range [0...input]
Ô #Reverse it
+J #Add a comma to the end, casting to a string by joining with ","
f #Get the substring that matches this regex:
, # Starts with a comma
+Uì # Has all the digits of the input
q",?" # Optionally, there can be commas between any digits
+J # Ends with a comma
mèJ #Count the number of commas in the result
²Î #Use 2 instead if no substring matched
É #Subtract 1
Japt, 30 bytes
;õ0 Ô+J f,+Uì q",?" +J mèJ ²ÎÉ
Try it online! or Check most test cases
This doesn't score well, but it uses a unique method and there might be room to golf it a lot more. It also performs well enough that all test cases other than 201200199198
avoid timing out.
Explanation:
; #Set J = ","
õ0 #Get the range [0...input]
Ô #Reverse it
+J #Add a comma to the end, casting to a string by joining with ","
f #Get the substring that matches this regex:
, # Starts with a comma
+Uì # Has all the digits of the input
q",?" # Optionally, there can be commas between any digits
+J # Ends with a comma
mèJ #Count the number of commas in the result
²Î #Use 2 instead if no substring matched
É #Subtract 1
answered 10 hours ago
Kamil Drakari
2,971416
2,971416
add a comment |
add a comment |
Jelly, 11 bytes
ŒṖḌ’DɗƑƇẈṀ
Byte for byte, no match for the other Jelly solution, but this one should be roughly $Oleft(n^{0.3}right)$.
Try it online!
How it works
ŒṖḌ’DɗƑƇẈṀ Main link. Argument: n (integer)
ŒṖ Yield all partitions of n's digit list in base 10.
Ƈ Comb; keep only partitions for which the link to the left returns 1.
Ƒ Fixed; yield 1 if calling the link to the left returns its argument.
Cumulatively reduce the partition by the link to the left.
ɗ Combine the three links to the left into a dyadic chain.
Ḍ Undecimal; convert a digit list into an integer.
’ Decrement the result.
D Decimal; convert the integer back to a digit list.
add a comment |
Jelly, 11 bytes
ŒṖḌ’DɗƑƇẈṀ
Byte for byte, no match for the other Jelly solution, but this one should be roughly $Oleft(n^{0.3}right)$.
Try it online!
How it works
ŒṖḌ’DɗƑƇẈṀ Main link. Argument: n (integer)
ŒṖ Yield all partitions of n's digit list in base 10.
Ƈ Comb; keep only partitions for which the link to the left returns 1.
Ƒ Fixed; yield 1 if calling the link to the left returns its argument.
Cumulatively reduce the partition by the link to the left.
ɗ Combine the three links to the left into a dyadic chain.
Ḍ Undecimal; convert a digit list into an integer.
’ Decrement the result.
D Decimal; convert the integer back to a digit list.
add a comment |
Jelly, 11 bytes
ŒṖḌ’DɗƑƇẈṀ
Byte for byte, no match for the other Jelly solution, but this one should be roughly $Oleft(n^{0.3}right)$.
Try it online!
How it works
ŒṖḌ’DɗƑƇẈṀ Main link. Argument: n (integer)
ŒṖ Yield all partitions of n's digit list in base 10.
Ƈ Comb; keep only partitions for which the link to the left returns 1.
Ƒ Fixed; yield 1 if calling the link to the left returns its argument.
Cumulatively reduce the partition by the link to the left.
ɗ Combine the three links to the left into a dyadic chain.
Ḍ Undecimal; convert a digit list into an integer.
’ Decrement the result.
D Decimal; convert the integer back to a digit list.
Jelly, 11 bytes
ŒṖḌ’DɗƑƇẈṀ
Byte for byte, no match for the other Jelly solution, but this one should be roughly $Oleft(n^{0.3}right)$.
Try it online!
How it works
ŒṖḌ’DɗƑƇẈṀ Main link. Argument: n (integer)
ŒṖ Yield all partitions of n's digit list in base 10.
Ƈ Comb; keep only partitions for which the link to the left returns 1.
Ƒ Fixed; yield 1 if calling the link to the left returns its argument.
Cumulatively reduce the partition by the link to the left.
ɗ Combine the three links to the left into a dyadic chain.
Ḍ Undecimal; convert a digit list into an integer.
’ Decrement the result.
D Decimal; convert the integer back to a digit list.
edited 10 hours ago
answered 16 hours ago
Dennis♦
186k32297735
186k32297735
add a comment |
add a comment |
Charcoal, 26 bytes
F⊕LθF⊕Lθ⊞υ⭆κ⁻I…θιλI﹪⌕υθ⊕Lθ
Try it online! Link is to verbose version of code. Explanation:
F⊕Lθ
Loop i
from 0 to the length of the input.
F⊕Lθ
Loop k
from 0 to the length of the input.
⊞υ⭆κ⁻I…θ⊕ιλ
Calculate the first k
numbers in the descending sequence starting from the number given by the first i
digits of the input, concatenate them, and accumulate each resulting string in the predefined empty list.
I﹪⌕υθ⊕Lθ
Find the position of the first matching copy of the input and reduce it modulo 1 more than the length of the input.
Example: For an input of 2019
the following strings are generated:
0
1 0
2 0-1
3 0-1-2
4 0-1-2-3
5
6 2
7 21
8 210
9 210-1
10
11 20
12 2019
13 201918
14 20191817
15
16 201
17 201200
18 201200199
19 201200199198
20
21 2019
22 20192018
23 201920182017
24 2019201820172016
2019
is then found at index 12, which is reduced modulo 5 to give 2, the desired answer.
add a comment |
Charcoal, 26 bytes
F⊕LθF⊕Lθ⊞υ⭆κ⁻I…θιλI﹪⌕υθ⊕Lθ
Try it online! Link is to verbose version of code. Explanation:
F⊕Lθ
Loop i
from 0 to the length of the input.
F⊕Lθ
Loop k
from 0 to the length of the input.
⊞υ⭆κ⁻I…θ⊕ιλ
Calculate the first k
numbers in the descending sequence starting from the number given by the first i
digits of the input, concatenate them, and accumulate each resulting string in the predefined empty list.
I﹪⌕υθ⊕Lθ
Find the position of the first matching copy of the input and reduce it modulo 1 more than the length of the input.
Example: For an input of 2019
the following strings are generated:
0
1 0
2 0-1
3 0-1-2
4 0-1-2-3
5
6 2
7 21
8 210
9 210-1
10
11 20
12 2019
13 201918
14 20191817
15
16 201
17 201200
18 201200199
19 201200199198
20
21 2019
22 20192018
23 201920182017
24 2019201820172016
2019
is then found at index 12, which is reduced modulo 5 to give 2, the desired answer.
add a comment |
Charcoal, 26 bytes
F⊕LθF⊕Lθ⊞υ⭆κ⁻I…θιλI﹪⌕υθ⊕Lθ
Try it online! Link is to verbose version of code. Explanation:
F⊕Lθ
Loop i
from 0 to the length of the input.
F⊕Lθ
Loop k
from 0 to the length of the input.
⊞υ⭆κ⁻I…θ⊕ιλ
Calculate the first k
numbers in the descending sequence starting from the number given by the first i
digits of the input, concatenate them, and accumulate each resulting string in the predefined empty list.
I﹪⌕υθ⊕Lθ
Find the position of the first matching copy of the input and reduce it modulo 1 more than the length of the input.
Example: For an input of 2019
the following strings are generated:
0
1 0
2 0-1
3 0-1-2
4 0-1-2-3
5
6 2
7 21
8 210
9 210-1
10
11 20
12 2019
13 201918
14 20191817
15
16 201
17 201200
18 201200199
19 201200199198
20
21 2019
22 20192018
23 201920182017
24 2019201820172016
2019
is then found at index 12, which is reduced modulo 5 to give 2, the desired answer.
Charcoal, 26 bytes
F⊕LθF⊕Lθ⊞υ⭆κ⁻I…θιλI﹪⌕υθ⊕Lθ
Try it online! Link is to verbose version of code. Explanation:
F⊕Lθ
Loop i
from 0 to the length of the input.
F⊕Lθ
Loop k
from 0 to the length of the input.
⊞υ⭆κ⁻I…θ⊕ιλ
Calculate the first k
numbers in the descending sequence starting from the number given by the first i
digits of the input, concatenate them, and accumulate each resulting string in the predefined empty list.
I﹪⌕υθ⊕Lθ
Find the position of the first matching copy of the input and reduce it modulo 1 more than the length of the input.
Example: For an input of 2019
the following strings are generated:
0
1 0
2 0-1
3 0-1-2
4 0-1-2-3
5
6 2
7 21
8 210
9 210-1
10
11 20
12 2019
13 201918
14 20191817
15
16 201
17 201200
18 201200199
19 201200199198
20
21 2019
22 20192018
23 201920182017
24 2019201820172016
2019
is then found at index 12, which is reduced modulo 5 to give 2, the desired answer.
answered 9 hours ago
Neil
79.5k744177
79.5k744177
add a comment |
add a comment |
Python 3, 302 282 bytes
Takes input as a string. Basically, it takes increasing larger slices of the number from the left, and sees if for that slice of the number a sequence can be formed using all the numbers.
def g(n,m,t=1):
for i in range(1,len(m)+1):
if int(m)==int(n[:i])+1:
if i==len(n):return t+1
return g(n[i:],n[:i],t+1)
return 1
def f(n):
for i in range(len(n)):
x=n[:i]
for j in range(1,len(x)+1):
if (int(x)==int(n[i:i+j])+1)*int(n[i]):return g(n[i:],x)
return 1
Try it online!
add a comment |
Python 3, 302 282 bytes
Takes input as a string. Basically, it takes increasing larger slices of the number from the left, and sees if for that slice of the number a sequence can be formed using all the numbers.
def g(n,m,t=1):
for i in range(1,len(m)+1):
if int(m)==int(n[:i])+1:
if i==len(n):return t+1
return g(n[i:],n[:i],t+1)
return 1
def f(n):
for i in range(len(n)):
x=n[:i]
for j in range(1,len(x)+1):
if (int(x)==int(n[i:i+j])+1)*int(n[i]):return g(n[i:],x)
return 1
Try it online!
add a comment |
Python 3, 302 282 bytes
Takes input as a string. Basically, it takes increasing larger slices of the number from the left, and sees if for that slice of the number a sequence can be formed using all the numbers.
def g(n,m,t=1):
for i in range(1,len(m)+1):
if int(m)==int(n[:i])+1:
if i==len(n):return t+1
return g(n[i:],n[:i],t+1)
return 1
def f(n):
for i in range(len(n)):
x=n[:i]
for j in range(1,len(x)+1):
if (int(x)==int(n[i:i+j])+1)*int(n[i]):return g(n[i:],x)
return 1
Try it online!
Python 3, 302 282 bytes
Takes input as a string. Basically, it takes increasing larger slices of the number from the left, and sees if for that slice of the number a sequence can be formed using all the numbers.
def g(n,m,t=1):
for i in range(1,len(m)+1):
if int(m)==int(n[:i])+1:
if i==len(n):return t+1
return g(n[i:],n[:i],t+1)
return 1
def f(n):
for i in range(len(n)):
x=n[:i]
for j in range(1,len(x)+1):
if (int(x)==int(n[i:i+j])+1)*int(n[i]):return g(n[i:],x)
return 1
Try it online!
edited 4 hours ago
answered 10 hours ago
Neil A.
1,138120
1,138120
add a comment |
add a comment |
If this is an answer to a challenge…
…Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.
…Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
Explanations of your answer make it more interesting to read and are very much encouraged.…Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.
More generally…
…Please make sure to answer the question and provide sufficient detail.
…Avoid asking for help, clarification or responding to other answers (use comments instead).
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f178373%2fhow-many-consecutive-descending-numbers-in-my-number%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Migrated from sandbox : codegolf.meta.stackexchange.com/questions/2140/…
– digEmAll
19 hours ago
Suggested test case:
1 --> 1
.– Kamil Drakari
14 hours ago
Additional suggested test cases:
312 --> 1
and191 --> 1
to ensure answers aren't truncating the first or last number (13,12 and 19,18 in these cases).– Kamil Drakari
13 hours ago
1
Is the test case
210 -> 2,1,0
wrong (same with0 -> 0
)? The tasks says "sub-numbers cannot contain leading zeros", is zero a special case?– BMO
13 hours ago
1
@BMO: well, here the topic is kinda phylosofical... :D to me, 0 is a number with no (useless) leading zero, so yes zero is a special case
– digEmAll
13 hours ago