Problem: 2864. 最大二进制奇数
由于奇数的二进制末尾一定是 111,我们可以把一个 111 放在末尾,其余的 111 全部放在开头,这样构造出的奇数尽量大。
复杂度
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)
Code
class Solution {
public String maximumOddBinaryNumber(String s) {
int n = s.length();
int cnt1 = (int) s.chars().filter(c -> c == '1').count();
String ans = "";
while(cnt1-- > 1)
{
n--;
ans += "1";
}
while(n-- > 1)//末尾留一个 1
ans += "0";
ans += "1";
return ans;
}
}