当前位置: 首页 > article >正文

leetcode 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 日(包括这两天)。

分析:简单模拟。首先将 date 按照 “yyyy-mm-dd” 的格式解析出年 year、月 month、日 day,然后将 year,month 和 day 的二进制表示字符串用 “-” 连接起来,返回结果。

void exchange(int num,char *ans)
{
    int l=strlen(ans),t=0;
    char temp[100]={0};
    while(num>=2)
        temp[t++]=num%2+'0',num/=2;
    if(num)temp[t++]=num+'0';
    for(int i=t-1,j=l;i>=0;--i,++j)
        ans[j]=temp[i];
}
char* convertDateToBinary(char* data) {
    int yy=0,mm=0,dd=0;
    yy=1000*(data[0]-'0')+100*(data[1]-'0')+10*(data[2]-'0')+data[3]-'0';
    mm=10*(data[5]-'0')+data[6]-'0';
    dd=10*(data[8]-'0')+data[9]-'0';
    char *ans=(char*)malloc(sizeof(char)*30);
    for(int i=0;i<30;++i)ans[i]=0;
    exchange(yy,ans);ans[strlen(ans)]='-';
    exchange(mm,ans);ans[strlen(ans)]='-';
    exchange(dd,ans);
    return ans;
}

http://www.kler.cn/a/463166.html

相关文章:

  • 1.1.1 认识时间复杂度
  • 深度学习中的离群值
  • Java重要面试名词整理(十八):Sentinel
  • SweetAlert2 - 漂亮可定制的 JavaScript 弹窗
  • 基于深度学习算法的AI图像视觉检测
  • df.replace({‘b‘: r‘\s*(\.)\s*‘}, {‘b‘: r‘\1ty‘}, regex=True)
  • Spring Boot 3 文件下载、多文件下载以及大文件分片下载、文件流处理、批量操作 和 分片技术
  • Java工程师实现视频文件上传minio文件系统存储及网页实现分批加载视频播放
  • 12.30-1-5学习周报
  • 【时时三省】(C语言基础)动态内存函数realloc
  • Node.js 常用命令全攻略
  • VSCode 插件开发实战(十三):如何添加个性化欢迎信息
  • Whiteboard-of-Thought——让大语言模型在白板上写下它们的推理过程,可以大大提高模型在视觉推理能力
  • Github - 如何提交一个带有“verified”标识的commit
  • 【漫话机器学习系列】031.数据增强(Dateset augmentation)
  • 安装、快速入门
  • npm 切换镜像源
  • MySQL5.7主从同步配置
  • mysql查询报错java.sql.SQLException: Illegal mix of collations for operation ‘UNION‘
  • 【智行安全】基于Synaptics SL1680的AI疲劳驾驶检测方案
  • 原生js封装ajax请求以及css实现提示效果和禁止点击效果
  • Android笔试面试题AI答之Android基础(9)
  • 扩充vmware磁盘大小以及分区
  • 细讲前端工程化
  • 使用SDL2搭建简易LVGL模拟器
  • 香港 GPU 服务器托管引领 AI 创新,助力 AI 发展