View difference between Paste ID: myGCgH45 and 5LHVRxRe
SHOW: | | - or go back to the newest paste.
1
// Author : Saurav Kalsoor
2-
// Reduce String - JAVA
2+
// Transform 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-
        String n = sc.next();
10+
        String str = sc.next();
11-
		System.out.println(reduceString(n));
11+
		System.out.println(transformString(str));
12
13
    }
14
15-
    public static String reduceString(String originalString){
15+
    public static String transformString(String str){
16-
		if(originalString.length() <= 2) return originalString;
16+
		if(str.length() == 2) return str;
17
		
18-
		String newString = "";
18+
		int n = str.length();
19-
		originalString = recurse(originalString, newString);
19+
		String newStr = "";
20-
		return reduceString(originalString);
20+
		for(int i = 0; i < n; i += 2){
21
			if(i == n - 1){
22
				newStr += str.charAt(i);
23-
	public static String recurse(String oldString, String newString){
23+
			}else{
24-
		if(oldString.isEmpty()) return newString;
24+
				newStr += getAverage(str.charAt(i), str.charAt(i + 1));
25
			}
26-
		int n = oldString.length();
26+
27-
		if(n == 1){
27+
		return transformString(newStr);
28-
			return newString + oldString;
28+
29
30
	public static char getAverage(char a, char b){
31-
		int first = oldString.charAt(0) - '0', last = oldString.charAt(n-1) - '0';
31+
		int avg = ((a - 'a') + (b - 'a'))/2;
32-
		int sum = first + last;
32+
		return (char)(avg + 'a');
33
	}
34-
		oldString = oldString.substring(1, n - 1);
34+
35-
		newString += Integer.toString(sum);
35+
36-
		return recurse(oldString, newString);
36+