SHOW:
|
|
- or go back to the newest paste.
1 | // Author : Saurav Kalsoor | |
2 | - | // Game with Thor and Loki - JAVA |
2 | + | // Reduce String - JAVA |
3 | ||
4 | import java.util.*; | |
5 | ||
6 | public class Test { | |
7 | ||
8 | static Scanner sc = new Scanner(System.in); | |
9 | public static void main(String[] args) { | |
10 | - | int n = sc.nextInt(); |
10 | + | String n = sc.next(); |
11 | System.out.println(reduceString(n)); | |
12 | - | ArrayList<Integer> arr = new ArrayList<>(); |
12 | + | |
13 | } | |
14 | - | for(int i=0; i < n; i++) { |
14 | + | |
15 | - | int input = sc.nextInt(); |
15 | + | public static String reduceString(String originalString){ |
16 | - | arr.add(input); |
16 | + | if(originalString.length() <= 2) return originalString; |
17 | - | } |
17 | + | |
18 | String newString = ""; | |
19 | - | gameWithThorAndLoki(arr, n); |
19 | + | originalString = recurse(originalString, newString); |
20 | return reduceString(originalString); | |
21 | } | |
22 | ||
23 | - | public static void gameWithThorAndLoki(ArrayList<Integer> arr, int n){ |
23 | + | public static String recurse(String oldString, String newString){ |
24 | - | int start = 0, end = n - 1; |
24 | + | if(oldString.isEmpty()) return newString; |
25 | - | boolean isThorsTurn = true; |
25 | + | |
26 | int n = oldString.length(); | |
27 | - | ArrayList<Integer> res = recurr(arr, start, end, isThorsTurn); |
27 | + | if(n == 1){ |
28 | return newString + oldString; | |
29 | - | System.out.println(res.get(0) + " " + res.get(1)); |
29 | + | |
30 | ||
31 | int first = oldString.charAt(0) - '0', last = oldString.charAt(n-1) - '0'; | |
32 | - | public static ArrayList<Integer> recurr(ArrayList<Integer> arr, int start, int end, boolean isThorsTurn){ |
32 | + | int sum = first + last; |
33 | - | if(start > end){ |
33 | + | |
34 | - | ArrayList<Integer> res = new ArrayList<Integer>(); |
34 | + | oldString = oldString.substring(1, n - 1); |
35 | - | res.add(0); |
35 | + | newString += Integer.toString(sum); |
36 | - | res.add(0); |
36 | + | return recurse(oldString, newString); |
37 | - | return res; |
37 | + | |
38 | } | |
39 | ||
40 | - | int left = arr.get(start); |
40 | + | |
41 | - | int right = arr.get(end); |
41 | + |