import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author xnl
* @Description:
* @date: 2022/8/8 21:14
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
String s = "11011000";
System.out.println(solution.makeLargestSpecial(s));
}
public String makeLargestSpecial(String s) {
if (s.length() == 0){
return s;
}
List<String> list = new ArrayList<>();
for (int i = 0, j = 0, k = 0; i < s.length(); i++){
k += s.charAt(i) == '1' ? 1 : -1;
if (k == 0){
list.add("1" + makeLargestSpecial(s.substring(j + 1, i)) + "0");
j = i + 1;
}
}
Collections.sort(list, (a, b) -> (b + a).compareTo( a + b));
StringBuilder sb = new StringBuilder();
for (String s1 : list) {
sb.append(s1);
}
return sb.toString();
}
}
01-19
374

09-12
1341
