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 | + |