2024.3.13每日一题

LeetCode

最大二进制奇数

题目链接:2864. 最大二进制奇数 - 力扣(LeetCode)

题目描述

给你一个 二进制 字符串 s ,其中至少包含一个 '1'

你必须按某种方式 重新排列 字符串中的位,使得到的二进制数字是可以由该组合生成的 最大二进制奇数

以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。

注意 返回的结果字符串 可以 含前导零。

示例 1:

输入:s = "010"
输出:"001"
解释:因为字符串 s 中仅有一个 '1' ,其必须出现在最后一位上。所以答案是 "001" 。

示例 2:

输入:s = "0101"
输出:"1001"
解释:其中一个 '1' 必须出现在最后一位上。而由剩下的数字可以生产的最大数字是 "100" 。所以答案是 "1001" 。

提示:

  • 1 <= s.length <= 100
  • s 仅由 '0''1' 组成
  • s 中至少包含一个 '1'

思路

奇数的二进制末尾一定是1,可以把一个 1放在末尾,其余的放在开头,这样构造的奇数最大。

代码

C++
class Solution {
public:
    string maximumOddBinaryNumber(string s) {
        int cnt = ranges::count(s,'1'); // 统计 1 的个数
        return string(cnt - 1, '1') + string(s.length() - cnt,'0') + '1'; 
    }
};
Java
class Solution {
    public String maximumOddBinaryNumber(String s) {
        int cnt = (int) s.chars().filter(c -> c == '1').count();
        return "1".repeat(cnt - 1) + "0".repeat(s.length() - cnt) + "1";
    }
}

相关推荐

  1. 每日学习总结20240313

    2024-03-14 22:12:01       21 阅读
  2. 每日】01

    2024-03-14 22:12:01       6 阅读
  3. leetcode每日4

    2024-03-14 22:12:01       38 阅读
  4. leetcode每日37

    2024-03-14 22:12:01       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 22:12:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 22:12:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 22:12:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 22:12:01       20 阅读

热门阅读

  1. 04 数据结构之队列

    2024-03-14 22:12:01       23 阅读
  2. STM32day2

    STM32day2

    2024-03-14 22:12:01      18 阅读
  3. adb 筛选查看Unity日志

    2024-03-14 22:12:01       20 阅读
  4. 前端面试练习24.3.12

    2024-03-14 22:12:01       17 阅读
  5. Android 二维码相关(二)

    2024-03-14 22:12:01       20 阅读