Advertisement
Paolinaaas

Take/Skip Rope

Jun 20th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.stream.Collectors;
  3.  
  4. public class skipTake {
  5.     public static void main(String[] args) {
  6.         Scanner scanner = new Scanner(System.in);
  7.  
  8.         String text = scanner.nextLine();
  9.         char[] chars = text.toCharArray();
  10.         List<Character> textChar = new ArrayList<>();
  11.  
  12.         for (int i = 0; i < chars.length; i++) {
  13.             textChar.add(chars[i]);
  14.         }
  15.  
  16.         List<Integer> numbers = new ArrayList<>();
  17.         List<Character> nonNumbers = new ArrayList<>();
  18.  
  19.         for (int i = 0; i < textChar.size(); i++) {
  20.             char ch = textChar.get(i);
  21.             if (Character.isDigit(ch)) {
  22.                 numbers.add(ch - '0');
  23.             } else {
  24.                 nonNumbers.add(ch);
  25.             }
  26.         }
  27.  
  28.         for (int i = 0; i < textChar.size(); i++) {
  29.             char ch = textChar.get(i);
  30.             if (Character.isDigit(ch)) {
  31.                 textChar.remove(textChar.indexOf(ch));
  32.                 i--;
  33.             }
  34.         }
  35.  
  36.         List<Integer> take = new ArrayList<>();
  37.         List<Integer> skip = new ArrayList<>();
  38.  
  39.         for (int i = 0; i < numbers.size(); i++) {
  40.             if (i % 2 == 0) {
  41.                 take.add(numbers.get(i));
  42.             } else {
  43.                 skip.add(numbers.get(i));
  44.             }
  45.         }
  46.  
  47.         List<Character> result = new ArrayList<>();
  48.         int index = 0;
  49.         for (int i = 0; i < nonNumbers.size(); i++) {
  50.             while (index < take.size()) {
  51.                 int takeIndex = take.get(index);
  52.                 int skipIndex = skip.get(index);
  53.  
  54.                 for (int j = i; j < i + takeIndex ; j++) {
  55.                     result.add(nonNumbers.get(j));
  56.                 }
  57.                 i += takeIndex;
  58.                 i += skipIndex;
  59.                 index++;
  60.             }
  61.         }
  62.         for (int i = 0; i < result.size(); i++) {
  63.             System.out.print(result.get(i));
  64.         }
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement