【刷题篇】笔试真题

文章目录

  • 复数乘法
  • 一年中的第几天
  • 字符串相加
  • 字符串相乘

复数乘法

复数 可以用字符串表示,遵循 “实部+虚部i” 的形式,并满足下述条件:
实部 是一个整数,取值范围是 [-100, 100]
虚部 也是一个整数,取值范围是 [-100, 100]
i^2 == -1
给你两个字符串表示的复数 num1 和 num2 ,请你遵循复数表示形式,返回表示它们乘积的字符串。
在这里插入图片描述

class Solution {
public:int convert1(string& str){int num=0;int flag=1;for(auto e :str){if(e=='-'){flag=-1;}else{if(e>='0'&&e<='9'){num=num*10+e-'0';}}}return num*flag;}string complexNumberMultiply(string num1, string num2) {vector<int> arr1(0);vector<int> arr2(2,0);vector<int> arr(2,0);int pos=num1.find('+');string str1=num1.substr(0,pos);string str2=num1.substr(pos+1);arr1[0]=convert1(str1);arr1[1]=convert1(str2);int pos1=num2.find('+');string str3=num2.substr(0,pos1);string str4=num2.substr(pos1+1);arr2[0]=convert1(str3);arr2[1]=convert1(str4);arr[0]=arr1[0]*arr2[0]-arr1[1]*arr2[1];arr[1]=arr1[0]*arr2[1]+arr1[1]*arr2[0];return to_string(arr[0]) + "+" + to_string(arr[1]) + "i";}// string ans = "";// int idx1 = num1.find('+'), idx2 = num2.find('+');// int a = stoi(num1.substr(0, idx1));// int b = stoi(num1.substr(idx1 + 1, num1.size() - idx1 - 1));// int c = stoi(num2.substr(0, idx2));// int d = stoi(num2.substr(idx2 + 1, num2.size() - idx2 - 1));// ans += to_string(a * c - b * d);// ans += "+";// ans += to_string(a * d + c * b);// ans += "i";//return ans;//}
};

一年中的第几天

给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天
在这里插入图片描述

class Solution {
public:int dayOfYear(string date) {int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};string yy = date.substr(0, 4);string mm = date.substr(5, 2);string dd = date.substr(8, 2);int y = stoi(yy);int m = stoi(mm);int d = stoi(dd);int ans = 0;if (((y%4==0)&&(y%100!=0))||(y%400==0)) days[1]++;for (int i = 0; i < m - 1; i++) {ans += days[i];}ans += d;return ans;}
};

字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

class Solution {
public:int Sum(int num1,int num2,int& sign){int sum=num1+num2+sign;if(sum>=10){sum-=10;sign=1;}elsesign=0;return sum;}string addStrings(string num1, string num2) {int i=0,j=0,sign=0;string newstr;//方便尾插reverse(num1.begin(),num1.end());reverse(num2.begin(),num2.end());while(i<num1.size()&&j<num2.size())newstr.push_back('0'+(Sum(num1[i++]-'0',num2[j++]-'0',sign)));while(i<num1.size())//防止sign有数据newstr.push_back('0'+(Sum(num1[i++]-'0',0,sign)));while(j<num2.size())//防止sign有数据newstr.push_back('0'+(Sum(num2[j++]-'0',0,sign)));//考虑最后的值大于十if(sign==1)newstr.push_back('1');//最后在反转回来reverse(newstr.begin(),newstr.end());return newstr;}
};

字符串相乘

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。

在这里插入图片描述

class Solution {
public:int Sum(int num1,int num2,int& sign){int sum=num1+num2+sign;if(sum>=10){sum-=10;sign=1;}elsesign=0;return sum;}string addStrings(string& num1, string& num2) {int i=0,j=0,sign=0;string newstr;//方便尾插reverse(num1.begin(),num1.end());reverse(num2.begin(),num2.end());while(i<num1.size()&&j<num2.size())newstr.push_back('0'+(Sum(num1[i++]-'0',num2[j++]-'0',sign)));while(i<num1.size())//防止sign有数据newstr.push_back('0'+(Sum(num1[i++]-'0',0,sign)));while(j<num2.size())//防止sign有数据newstr.push_back('0'+(Sum(num2[j++]-'0',0,sign)));//考虑最后的值大于十if(sign==1)newstr.push_back('1');//最后在反转回来reverse(newstr.begin(),newstr.end());return newstr;}string multiply(string num1, string num2) {if (num1 == "0" || num2 == "0") {return "0";}string ans = "0";int m=num1.size();int n=num2.size();for(int i=n-1;i>=0;i--){string str;int add=0;for(int j=n-1;j>i;j--){str.push_back(0);}int y=num2.at(i)-'0';for(int j=m-1;j>=0;j--){int x=num1.at(j)-'0';int product=x*y+add;str.push_back(product%10);add=product/10;}while(add!=0){str.push_back(add%10);add/=10;}reverse(str.begin(), str.end());for (auto &c : str) {c += '0';}ans = addStrings(ans, str);}return ans;}// string addStrings(string &num1, string &num2) {//     int i = num1.size() - 1, j = num2.size() - 1, add = 0;//     string ans;//     while (i >= 0 || j >= 0 || add != 0) {//         int x = i >= 0 ? num1.at(i) - '0' : 0;//         int y = j >= 0 ? num2.at(j) - '0' : 0;//         int result = x + y + add;//         ans.push_back(result % 10);//         add = result / 10;//         i--;//         j--;//     }//     reverse(ans.begin(), ans.end());//     for (auto &c: ans) {//         c += '0';//     }//     return ans;// }};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/116839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL字段加密方案 安当加密

要通过安当KSP密钥管理系统实现MySQL数据库字段的加密&#xff0c;您可以按照以下步骤进行操作&#xff1a; 安装和配置安当KSP密钥管理系统&#xff1a;首先&#xff0c;您需要安装安当KSP密钥管理系统&#xff0c;并按照说明进行配置。确保您已经正确地设置了密钥管理系统的用…

C语言知识回顾

链接&#xff1a;https://pan.baidu.com/s/1CiB1Ydm4LTV6hZE8wx0VFw?pwdna4z 提取码&#xff1a;na4z --来自百度网盘超级会员V6的分享

判断过/欠拟合和学习率

一、说明 这篇博客是判断是否过拟合和学习率大小的问题&#xff0c;并没有给出解决办法。因为每个人的网络模型不一样&#xff0c;解决办法也不同。因此&#xff0c;如果需要解决办法的话&#xff0c;请参考其他博客。 二、拟合问题 1.train_loss 不断下降&#xff0c;test_los…

【Linux系统编程:信号】产生信号 | 阻塞信号 | 处理信号 | 可重入函数

写在前面 通过学习信号可以理解进程与进程的一个相对关系&#xff0c;还能理解操作系统与进程的关系。要注意的是进程间通信中的信号量与这里的信号没有半毛钱关系&#xff0c;就像老婆和老婆饼。 本文要点&#xff1a; 掌握 Linux 信号的基本概念掌握信号产生的一般方式理解…

Unity之ShaderGraph如何实现触电电流效果

前言 之前使用ASE做过一个电流效果的shader&#xff0c;今天我们通过ShaderGraph来实现一个电流效果。 效果如下&#xff1a; 关键节点 Simple Noise&#xff1a;根据输入UV生成简单噪声或Value噪声。生成的噪声的大小由输入Scale控制。 Power&#xff1a;返回输入A的结果…

统信UOS技术开放日:四大领域全面接入AI大模型能力

1024是程序员的节日&#xff0c;10月24日&#xff0c;统信举办2023统信UOS技术开放日暨deepin Meetup北京站活动&#xff0c;发布与大模型同行的UOS AI、浏览器AI助手、邮箱AI助手、自然语言全局搜索、畅写在线等多项最新AI技术与产品应用。 统信软件高级副总经理、CTO、深度社…

周记之马上要答辩了

“ 要变得温柔和强大&#xff0c;就算哪天突然孤身一人&#xff0c;也能平静地活下去&#xff0c;不至于崩溃。” 10.16 今天提前写完了一篇六级阅读&#xff0c;积累了一些词组&#xff1a; speak out against 公然反对&#xff0c;印象最深刻的就这个&#xff1b; 先了解…

opencv dnn模块 示例(19) 目标检测 object_detection 之 yolox

文章目录 0、前言1、网络介绍1.1、输入1.2、Backbone主干网络1.3、Neck1.4、Prediction预测输出1.4.1、Decoupled Head解耦头1.4.2、Anchor-Free1.4.3、标签分配1.4.4、Loss计算 1.5、Yolox-s、l、m、x系列1.6、轻量级网络研究1.6.1、轻量级网络1.6.2、数据增强的优缺点 1.7、Y…

app专项测试:app弱网测试

弱网测试背景 用户体验 APP使用过程中&#xff0c;弱网的高延迟和高丢包&#xff0c;在实时性要求非常高的场景&#xff0c;容易伤害用户体验 非正常情况下&#xff0c;Bug出现几率会增加 在解决日常支持需求中&#xff0c;经常出现一些用户反馈的Bug无法复现&#xff0c;有…

库的操作【MySQL】

文章目录 创建数据库字符集和校验规则概念分类例子 查看数据库显示创建语句修改数据库删除数据库备份和恢复备份恢复 创建数据库 SQL: CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSETcharset_name] [[DEFAULT] COLLATEcollation_name];其中&#xff0c;大写的单…

xhadmin多应用Saas框架之超级SEO应用介绍

xhadmin是什么&#xff1f; xhadmin 是一套基于最新技术的研发的多应用 Saas 框架&#xff0c;支持在线升级和安装模块及模板&#xff0c;拥有良好的开发框架、成熟稳定的技术解决方案、提供丰富的扩展功能。为开发者赋能&#xff0c;助力企业发展、国家富强&#xff0c;致力于…

面对史上最难求职季,哪些测试技能更容易拿到offer?

在一线大厂&#xff0c;没有测试这个岗位&#xff0c;只有测开这个岗位。这几年&#xff0c;各互联网大厂技术高速更新迭代&#xff0c;软件测试行业也正处于转型期。传统的功能测试技术逐步淘汰&#xff0c;各种新的测试技术层出不穷&#xff0c;测试人员的薪资也水涨船高。与…

ChatGPT 助力英文论文翻译和润色

文章目录 一、前言二、主要内容1. 中英互译2. 中文润色3. 英文润色 三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 随着全球化的推进&#xff0c;跨文化交流变得越来越重要。在学术领域&#xff0c;英文论文的质量对于研究成果的传…

JAVA设计模式全解(独家AI解析)

JAVA设计模式全解&#xff08;独家AI解析&#xff09; 一、JAVA介绍二、JAVA设计模式六大原则三、JAVA设计模式介绍四、JAVA设计模式详解4.1 单例模式4.1.1 懒汉式&#xff08;Lazy Initialization&#xff09;4.1.2 饿汉式&#xff08;Lazy Initialization&#xff09; 4.2 代…

nginx配置负载均衡--实战项目(适用于轮询、加权轮询、ip_hash)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

制药企业固体制剂设备管理及维护要点

在制药企业的生产过程中&#xff0c;固体制剂设备是至关重要的一环。有效管理和维护这些设备对于确保生产质量、提高生产效率以及延长设备寿命至关重要。本文将从以下三个方面介绍制药企业固体制剂设备的主要类型、常见管理问题以及设备维护的关键要点。 制药企业固体制剂设备主…

java智慧工地云平台源码,以物联网、移动互联网技术为基础,结合大数据、云计算等,实现工程管理绿色化、数字化、精细化、智能化的效果

智慧工地将更多人工智能、传感技术、虚拟现实等高科技技术植入到建筑、机械、人员穿戴设施、场地进出关口等各类物体中&#xff0c;围绕人、机、料、法、环等各方面关键因素&#xff0c;彻底改变传统建筑施工现场参建各方现场管理的交互方式、工作方式和管理模式&#xff0c;智…

分析概览 文章管理 草稿管理 图片管理 站点管理 主站 关于 登出 手写操作系统项目----进程

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家来访。 这里记录了&#xff0c;手写操作系统项目中关于进程的部分。 进程四要素 首先进程有四要素。 …

Linux软件包和进程管理

一、RPM软件包管理 1、RPM管理工具 &#xff08;1&#xff09;RPM是红帽包管理(Redhat Package Manager)的缩写。 由Red Hat公司提出的一种软件包管理标准。 是Linux各发行版中应用最广泛的软件包格式之一&#xff08;还有debian的发行版deb安装包&#xff09;。 RPM功能通过…

数据结构:选择题+编程题(每日一练)

目录 选择题&#xff1a; 题一&#xff1a; 题二&#xff1a; 题三&#xff1a; 题四&#xff1a; 题五&#xff1a; 编程题&#xff1a; 题一&#xff1a;单值二叉树 思路一&#xff1a; 题二&#xff1a;二叉树的最大深度 思路一&#xff1a; 本人实力有限可能对…