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)//末尾留一个 1ans += "0";ans += "1";return ans;}
}