Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package javap;
- import java.util.Scanner;
- public class uppg6 {
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- String text = scan.nextLine();
- String output = decompress(text);
- System.out.println(output);
- scan.close();
- }
- private static String decompress(String text) {
- int i = 0;
- if(text.equals("") || text.length() == 1) return text;
- //LETTER
- if(Character.isLetter(text.charAt(i))){
- return text.substring(0,1) + decompress(text.substring(1)); //ret letter and decompress rest
- }
- //DIGIT
- else if(Character.isDigit(text.charAt(i))){
- int number = Integer.parseInt(text.substring(0,1));
- if(Character.isDigit(text.charAt(i+1))){ //covers 1-99
- number = Integer.parseInt(text.substring(0,2));
- }
- int len = Integer.toString(number).length();
- if(text.charAt(i+len) == '('){
- int last = text.lastIndexOf(')');
- return multiple(text.substring(len+1, last), number) + decompress(text.substring(last+1));
- }
- else{
- return multiple(text.substring(len, len+1), number) + decompress(text.substring(len+1));
- }
- }
- return text;
- }
- private static StringBuilder multiple(String substring, int number) {
- StringBuilder sb = new StringBuilder();
- int i = 0;
- while (i<number){
- sb.append(decompress(substring));
- i++;
- }
- return sb;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement