列表

详情


3280. 将日期转换为二进制表示

给你一个字符串 date,它的格式为 yyyy-mm-dd,表示一个公历日期。

date 可以重写为二进制表示,只需要将年、月、日分别转换为对应的二进制表示(不带前导零)并遵循 year-month-day 的格式。

返回 date二进制 表示。

 

示例 1:

输入: date = "2080-02-29"

输出: "100000100000-10-11101"

解释:

100000100000, 10 和 11101 分别是 2080, 02 和 29 的二进制表示。

示例 2:

输入: date = "1900-01-01"

输出: "11101101100-1-1"

解释:

11101101100, 1 和 1 分别是 1900, 1 和 1 的二进制表示。

 

提示:

相似题目

位1的个数

负二进制转换

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: string convertDateToBinary(string date) { } };

python3 解法, 执行用时: 35 ms, 内存消耗: 16.4 MB, 提交时间: 2024-09-09 09:08:44

class Solution:
    def convertDateToBinary(self, date: str) -> str:
        a = date.split('-')
        for i in range(len(a)):
            a[i] = bin(int(a[i]))[2:]
        return '-'.join(a)

java 解法, 执行用时: 3 ms, 内存消耗: 41.4 MB, 提交时间: 2024-09-09 09:08:18

class Solution {
    public String convertDateToBinary(String date) {
        String[] a = date.split("-");
        for (int i = 0; i < a.length; i++) {
            a[i] = Integer.toBinaryString(Integer.parseInt(a[i]));
        }
        return String.join("-", a);
    }
}

golang 解法, 执行用时: 0 ms, 内存消耗: 2.2 MB, 提交时间: 2024-09-09 09:08:04

func convertDateToBinary(date string) string {
	a := strings.Split(date, "-")
	for i := range a {
		x, _ := strconv.Atoi(a[i])
		a[i] = strconv.FormatUint(uint64(x), 2)
	}
	return strings.Join(a, "-")
}

cpp 解法, 执行用时: 4 ms, 内存消耗: 9 MB, 提交时间: 2024-09-09 09:07:51

class Solution {
public:
    string convertDateToBinary(string date) {
        auto bin = [](int x) -> string {
            string s = bitset<32>(x).to_string();
            return s.substr(s.find('1'));
        };
        return bin(stoi(date.substr(0, 4))) + "-" +
               bin(stoi(date.substr(5, 2))) + "-" +
               bin(stoi(date.substr(8, 2)));
    }
};

上一题