-
Code import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; class Solution { public static String numberOfNumbers(int value) { String delimiter = getDelimiterFor(value); return IntStream.rangeClosed(1, Math.abs(value)) .mapToObj(Solution::repeatByItself) .collect(Collectors.joining(delimiter)); } private static String getDelimiterFor(int value){ return value > 0 ? "-" : "+"; } private static String repeatByItself(int i){ return String.valueOf(i).repeat(i); } }
Test Cases import org.junit.Test; import static org.junit.Assert.assertEquals; import org.junit.runners.JUnit4; public class SolutionTest { public void testWhenValueIsZero() { assertEquals("", Solution.numberOfNumbers(0)); } public void testPositiveValues() { assertEquals("1", Solution.numberOfNumbers(1)); assertEquals("1-22", Solution.numberOfNumbers(2)); assertEquals("1-22-333", Solution.numberOfNumbers(3)); assertEquals("1-22-333-4444", Solution.numberOfNumbers(4)); assertEquals("1-22-333-4444-55555", Solution.numberOfNumbers(5)); } public void testNegativeValues() { assertEquals("1", Solution.numberOfNumbers(-1)); assertEquals("1+22", Solution.numberOfNumbers(-2)); assertEquals("1+22+333", Solution.numberOfNumbers(-3)); assertEquals("1+22+333+4444", Solution.numberOfNumbers(-4)); assertEquals("1+22+333+4444+55555", Solution.numberOfNumbers(-5)); } public void testWithDoubleDigitValue() { assertEquals("1-22-333-4444-55555-666666-7777777-88888888-999999999-10101010101010101010", Solution.numberOfNumbers(10)); } }
Output:
-
Code - import java.util.stream.Collectors;
- import java.util.stream.IntStream;
- import java.util.stream.Stream;
- class Solution {
- public static String numberOfNumbers(int value) {
- String delimiter = getDelimiterFor(value);
return IntStream.rangeClosed(0, Math.abs(value))- return IntStream.rangeClosed(1, Math.abs(value))
- .mapToObj(Solution::repeatByItself)
.filter(Solution::notBlank)- .collect(Collectors.joining(delimiter));
- }
- private static String getDelimiterFor(int value){
- return value > 0 ? "-" : "+";
- }
- private static String repeatByItself(int i){
- return String.valueOf(i).repeat(i);
- }
private static boolean notBlank(String s){return !s.isBlank();}- }
- All
- {{group.name}} ({{group.count}})
This comment has been reported as {{ abuseKindText }}.
Show
This comment has been hidden. You can view it now .
This comment can not be viewed.
- |
- Reply
- Edit
- View Solution
- Expand 1 Reply Expand {{ comments?.length }} replies
- Collapse
- Remove
- Remove comment & replies
- Report
{{ fetchSolutionsError }}