class Solution {
public:
string convertDateToBinary(string date) {
}
};
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 的二进制表示。
提示:
date.length == 10
date[4] == date[7] == '-'
,其余的 date[i]
都是数字。date
代表一个有效的公历日期,日期范围从 1900 年 1 月 1 日到 2100 年 12 月 31 日(包括这两天)。原站题解
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))); } };