YTU OJ 3295: 最小二進制數

題目描述

如果字符串由“0”和“1”組成並且沒有前導零,則可以將此字符串稱爲正確的
以下是一些示例:“0”,“10”,“1001”。
給你一個正確的字符串s,您可以對此字符串執行兩種不同的操作:
1. 交換任何一對相鄰字符(例如,“1 01” “1 10”);
2. 將“11”替換爲“1”(例如,“11 0” “1 0”)。
設val(s)是一個數字,s是它的二進制表示。
正確的字符串a小於其他正確的字符串b if (val(a)<  val(b))。
您的任務是找到可以使用上述操作從給定字符串中獲取的最小正確字符串。您可以按任何順序多次使用這些操作(甚至根本不使用任何操作)。

 

 

輸入

第一行爲一個整數 n (1<=n <= 100)。
第二行爲一個長度爲n且只包含0或1的字符串s, 保證字符串s是正確的。


 

輸出

輸出一個您可以從給定字符串中獲取的最小正確字符串。

樣例輸入

4
1001

樣例輸出

100

來源

ACM集訓隊 

【AC代碼】:

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String s = sc.next();
		int t = 0;
		for (int i = 0; i < n; i++)
			if (s.charAt(i) == '0')
				t++;
		if (s.charAt(0) == '0')
			System.out.println(0);
		else {
			System.out.print(1);
			for (int i = 0; i < t; i++)
				System.out.print(0);
		}

	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章