[Community Puzzle] Rearrange string to two numbers


#1

https://www.codingame.com/training/medium/rearrange-string-to-two-numbers

Send your feedback or ask for help here!

Created by @aropan,validated by @selenae,@JBM and @Razovsky.
If you have any issues, feel free to ping them.


#2

Really nice! Such simple rules, so challenging to implement.


#3

Failing on Validator 18. Is there anything specific to look out for?


#4

Same thing as the the corresponding test, which is named “Two digits”.


#5

Hello dear codingamers! I have a problem with this puzzle. Validator 4 and validator 18 don’t pass.

Let me explain what my programs does.
1. I’m calculating an initial length for a and b, where I maximize the length of b and minimize length of a. (What I mean by length is the number of digit that compose a and b). I remove the 0’s from the list and calculate their numbers into the variable number_of_zeros.
2. I test if b could be equal to 10^18.
3. I test if a could be equal to 0
4. I test if a could be equal to 10^18
5. I test if b could be equal to 0
6. Depending on the previous test, I calculate a or b.
To calculate a or b, I’m looking for the minimal number in the list of numbers. Then I fill a or b with the zeros. Then, I finish to fill a or b with the numbers left.
7. If I didn’t find valid numbers, I do length_a +1 and length_b - 1 and it goes back to step 2.

---- Example of my algorithm working ----
list_of_numbers = [8, 0, 1, 0, 5]
list_of_numbers_without_zero = [8, 1, 5]
number_of_zeros = 2
Length_a = 1
Length_b = 4

Step 3 is valid, a can be equal to 0 so a = 0, number_of_zeros = 1.
I calculate b:

  • Minimal number is 5 so b += "5"
  • I fill b with zeros if there are 0’s left. b += str(0)*1, number_of_zeros = 0
  • I fill b with minimal number in the list of numbers so b += "8"

In the end, I have a = 0, b = 508.

All my tests pass in the IDE, but not in the validators.


#6

I’m so happy that I feel like writing a little post for this puzzle. It’s been 4 months that I’m stuck on this one. This puzzle is truly amazing, simple rules but tricky to solve. For those who want to solve it, make sure to grab a piece of paper and write down every cases you can think of. Some cases are not tested in the tests, but are in the validators.

It was a really great puzzle and I’m so glad that I finally solved it.