【LeetCode每日一题】2864. 最大二进制奇数
2864. 最大二进制奇数
思路:
1.拼贴字符串。
2.遍历字符串s,统计1的个数。
3.如果只有一个1,将1放在末尾,保证这个二进制数是奇数
4.如果有多个1,将一个1放在末尾,将剩余的1尽可能的放在开头
5.用StringBuilder来拼接字符,最后返回一个字符串的形式
代码1:
public String maximumOddBinaryNumber(String s) {
int count = 0;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
count += s.charAt(i)-'0';
}
if (count == 0) {
for (int i = 0; i < s.length() - 1; i++) {
sb.append(0);
}
sb.append(1);
} else {
for (int i = 0; i < count - 1; i++) {
sb.append(1);
}
for (int i = 0; i < s.length() - count; i++) {
sb.append(0);
}
sb.append(1);
}
return sb.toString();
}
原文地址:https://blog.csdn.net/m0_64003319/article/details/136687184
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!