輸入一個數字n和一個字符串,n表示該字符串長度。字符串只有0和1,0和1挨着就消除,00和11保留,無限消除直到得出最後結果,並輸出結果字符串的長度。java
例:spa
輸入: 4 1010 輸出: 0 輸入: 4 1110 輸出: 2
1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.Scanner; 4 5 public class Test1 { 6 public static void main(String[] args) { 7 //獲取輸入字符串 8 int[] arr = getArr(); 9 List<Integer> arrayList = new ArrayList<Integer>(arr.length); 10 for (Integer s : arr) { 11 arrayList.add(s); 12 } 13 //遞歸處理 14 List<Integer> result = deal(arrayList, 0); 15 //輸出結果 16 System.out.println(result.size()); 17 18 } 19 static List<Integer> deal(List<Integer> arr, int i) { 20 boolean flag = false; 21 if(arr.size() == 0) { 22 return new ArrayList<Integer>(); 23 } 24 if (arr.get(i) != arr.get(i + 1)) { 25 arr.remove(i); 26 arr.remove(i); 27 flag = true; 28 if (flag == true) { 29 deal(arr, 0); 30 } 31 }else { 32 if((i + 2) < arr.size()) { 33 deal(arr, i + 1); 34 }else { 35 return arr; 36 } 37 } 38 return arr; 39 } 40 41 static int[] getArr() { 42 @SuppressWarnings("resource") 43 Scanner sc = new Scanner(System.in); 44 int n = Integer.parseInt(sc.nextLine()); 45 String str = sc.nextLine(); 46 String[] arr_str = str.split(""); 47 int[] arr = new int[n]; 48 for(int i = 0; i < arr_str.length; i ++) { 49 arr[i] = Integer.parseInt(arr_str[i]); 50 } 51 return arr; 52 } 53 54 }