题目来源
我的题解
方法一 贪心
统计1的个数,满足要求的字符串的末尾一位一定是1,所以需要将一位1放到末尾,然后将剩余的1从最高位开始放,直到放完,其余位置补0。
时间复杂度:O(n)
空间复杂度:O(1)
public String maximumOddBinaryNumber(String s) {
int one=0;
for(char c:s.toCharArray()){
one+=c-'0';
}
StringBuilder sb=new StringBuilder();
for(int i=0;i<one-1;i++){
sb.append('1');
}
for(int i=one-1;i<s.length()-1;i++){
sb.append('0');
}
sb.append('1');
return sb.toString();
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~