SHOW:
|
|
- or go back to the newest paste.
1 | // Author : Saurav Kalsoor | |
2 | - | // Reduce String - JAVA |
2 | + | // Reduce String - KOTLIN |
3 | ||
4 | - | import java.util.*; |
4 | + | import java.util.* |
5 | ||
6 | - | public class Test { |
6 | + | var sc: Scanner = Scanner(System.`in`) |
7 | ||
8 | - | static Scanner sc = new Scanner(System.in); |
8 | + | fun main() { |
9 | - | public static void main(String[] args) { |
9 | + | val n: String = sc.next() |
10 | - | String n = sc.next(); |
10 | + | println(reduceString(n)) |
11 | - | System.out.println(reduceString(n)); |
11 | + | |
12 | ||
13 | fun reduceString(originalString: String): String? { | |
14 | var originalString = originalString | |
15 | - | public static String reduceString(String originalString){ |
15 | + | if (originalString.length <= 2) |
16 | - | if(originalString.length() <= 2) return originalString; |
16 | + | return originalString |
17 | - | |
17 | + | val newString = "" |
18 | - | String newString = ""; |
18 | + | originalString = recurse(originalString, newString) |
19 | - | originalString = recurse(originalString, newString); |
19 | + | return reduceString(originalString) |
20 | - | return reduceString(originalString); |
20 | + | |
21 | - | } |
21 | + | |
22 | fun recurse(oldString: String, newString: String): String { | |
23 | - | public static String recurse(String oldString, String newString){ |
23 | + | var oldString = oldString |
24 | - | if(oldString.isEmpty()) return newString; |
24 | + | var newString = newString |
25 | ||
26 | - | int n = oldString.length(); |
26 | + | if (oldString.isEmpty()) |
27 | - | if(n == 1){ |
27 | + | return newString |
28 | - | return newString + oldString; |
28 | + | |
29 | - | } |
29 | + | val n = oldString.length |
30 | ||
31 | - | int first = oldString.charAt(0) - '0', last = oldString.charAt(n-1) - '0'; |
31 | + | if (n == 1) { |
32 | - | int sum = first + last; |
32 | + | return newString + oldString |
33 | } | |
34 | - | oldString = oldString.substring(1, n - 1); |
34 | + | val first = oldString[0] - '0' |
35 | - | newString += Integer.toString(sum); |
35 | + | val last = oldString[n - 1] - '0' |
36 | - | return recurse(oldString, newString); |
36 | + | val sum = first + last |
37 | - | } |
37 | + | oldString = oldString.substring(1, n - 1) |
38 | newString += Integer.toString(sum) | |
39 | return recurse(oldString, newString) | |
40 | } | |
41 | ||
42 |