[笔试训练](六)

news2024/12/25 10:06:09

016

大数加法_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

由于相加超过10要进位,因此需要从从后往前将每个数相加得到tmp,超过10时,该位只放tmp%10后的结果,同时将tmp/=10,进入下一位的相加中。

class Solution {
public:
    string solve(string s, string t) 
    {
        string ret;
        int i=s.size()-1,j=t.size()-1;
        int tmp=0;
        while(i>=0 || j>=0 || tmp)
        {
            if(i>=0) tmp+=s[i--]-'0';
            if(j>=0) tmp+=t[j--]-'0';
            ret+=tmp%10+'0';
            tmp/=10;
        }
        reverse(ret.begin(),ret.end());
        return ret;
    }
};

 017

链表相加(二)_牛客题霸_牛客网 (nowcoder.com)

题目:

 

 题解:

加法需要考虑进位,应该从个位开始相加,与链表顺序相反,所以先将链表逆序再相加。

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {   
public:
    ListNode* reverse(ListNode* head)
    {
        ListNode* newHead = new ListNode(0);
        ListNode* cur = head;
        while(cur)
        {
            ListNode* next=cur->next;
            cur->next=newHead->next;
            newHead->next=cur;
            cur=next;
        }
        cur=newHead->next;
        //newHead->next=nullptr;
        delete newHead;
        return cur;
    }

    ListNode* addInList(ListNode* head1, ListNode* head2) 
    {
        //1.逆序
        head1=reverse(head1);
        head2=reverse(head2);

        //2.高精度加法
        int t=0;
        ListNode* cur1=head1,* cur2=head2;
        ListNode* ret=new ListNode(0);
        ListNode* prev=ret;
        while(cur1 || cur2 || t)
        {
            if(cur1)
            {
                t+=cur1->val;
                cur1=cur1->next;
            }
            if(cur2)
            {
                t+=cur2->val;
                cur2=cur2->next;
            }
            prev->next=new ListNode(t%10);
            prev=prev->next;
            t/=10; //t保存进位
        }
        cur1=ret->next;
        ret->next=nullptr;
        delete ret;
        return reverse(cur1);
    }
};

 018

大数乘法_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

根据乘法分配率,可以将每位相乘结果无进位相加,再单独进位。

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 第一个整数
     * @param t string字符串 第二个整数
     * @return string字符串
     */
    string solve(string s, string t) 
    {
        reverse(s.begin(),s.end());
        reverse(t.begin(),t.end());
        int m=s.size(),n=t.size();
        vector<int> tmp(m+n);

        //1.无进位相乘
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                tmp[i+j]+=(s[i]-'0')*(t[j]-'0');
            }
        }

        //2.进位
        int c=0;
        string ret;
        for(auto x:tmp)
        {
            c+=x;
            ret+=c%10+'0';
            c/=10;
        }
        while(c)
        {
            ret+=c%10+'0';
            c/=10;
        }
        
        //3.处理前导零
        while(ret.size()>1 && ret.back()=='0') ret.pop_back();
        reverse(ret.begin(),ret.end());

        return ret;
    }
};

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

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

相关文章

冯老师降维打击申论课

冯老师降维打击申论课&#xff0c;以其独到的见解和精湛的教学技巧&#xff0c;将复杂的申论知识变得简单易懂。通过深入浅出的讲解&#xff0c;帮助考生迅速掌握申论精髓&#xff0c;轻松应对考试。课程内容丰富实用&#xff0c;深受考生好评&#xff0c;是备考申论的不二之选…

观鸟,一场真实世界的宝可梦游戏

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 卷圈 姝琦 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 春天来了&#xff0c;是时候出门观鸟了&#xff01; 如果说城市公园20分钟效应是短暂逃离生活压力的手段。 那…

一些常见的Windows命令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言看版本号查找端口启动程序杀死某个端口查看全部端口看ip进入目录就是总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#x…

MessageBox的模版语法上如何注册事件

目标&#xff1a; 想要在MessageBox中的文本中写一些事件&#xff0c;如何处理 在vue中进行操作&#xff1a; coding // 弹窗提示 this.$confirm({customClass: "add-fail",title: this.$t(add_error),type: error,dangerouslyUseHTMLString: true, // 将消息使用…

21-22 - 线性表的链式存储结构 单链表的具体实现

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 线性表的链式存储结构1.1 定义1.2 逻辑结构1.3 专业术语的统一 2. 链表的基本概念2.1 单链表中的结点定义2.2 单链表中的内部结构2.3 在目标位置处插入数据元素2.4 在目标位置处删除数据元素 3. 链式存储结构线性表的实现3.1 设…

Git-Gitlab中如何创建项目、创建Repository、以及如何删除项目

目录 概念过程创建项目创建Repository创建分支使用IDEA删除项目 git常用命令基础命令拉取远程代码方式一拉取远程代码方式二 概念 GitLab是一个基于Git的版本控制系统&#xff0c;它提供了一个Web界面&#xff0c;可以让用户更方便地进行代码管理、版本管理、协作开发等工作。G…

嵌入式物联网实战开发笔记-乐鑫ESP32开发环境ESP-IDF搭建【doc.yotill.com】

乐鑫ESP32入门到精通项目开发参考百例下载&#xff1a; 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;4e33 3.1 ESP-IDF 简介 ESP-IDF&#xff08;Espressif IoT Development Framework&#xff09;是乐鑫&#xff08;Espressif Systems&#xff09;为 ESP 系列…

云计算时代,企业面临的云安全风险

如今&#xff0c;随着云计算等新兴科技的发展&#xff0c;不同类型企业间的关联越来越多&#xff0c;它们之间的业务边界已被打破&#xff0c;企业上云成为了大势所趋。云计算应用帮助企业改变了IT资源不集中的状况&#xff0c;同时&#xff0c;数据中心内存储的大量数据信息&a…

R语言使用sjPlot包优雅绘制回归模型的交互效应图

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技&#xff0c;几乎在高分的SCI中必出现&#xff0c;因为把人群分为亚组后再进行统计可以增强文章结果的可靠性&#xff0c;进行可视化后可以清晰的表明变量之间的关系。不仅如此&#xff0c;交互作用还可以使用来进…

劳保工具佩戴监测识别摄像机

随着工业生产技术的不断进步和劳动保护意识的提高&#xff0c;劳保工具的佩戴已成为维护工人安全健康的重要环节。为了更好地监测和识别工人是否正确佩戴劳保工具&#xff0c;以及工作场所是否存在安全隐患&#xff0c;智能劳保工具佩戴监测识别摄像机应运而生。这种摄像机结合…

GoLand远程开发IDE:使用SSH远程连接服务器进行云端编程

目录 ⛳️推荐 1. 安装配置GoLand 2. 服务器开启SSH服务 3. GoLand本地服务器远程连接测试 4. 安装cpolar内网穿透远程访问服务器端 4.1 服务器端安装cpolar 4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&am…

C语言 | Leetcode C语言题解之第49题字母异位词分组

题目&#xff1a; 题解&#xff1a; /*1.将字符串原串与副本进行绑定成一个节点2.对字符串副本进行按ascii码表进行从小到大排序3.按照字符串进行比较排序4.合并 */ typedef struct Node{char*s;char*s_vice;int len; }Node;void sortShellChar(char*s,int len){for(int dista…

推荐3个视频转文字的工具

如果是长视频转文字的话&#xff0c;我会推荐你三个专业的能够将视频文字提取出来的工具&#xff0c;操作无门槛&#xff0c;转换出的文字准确率高&#xff0c;可以直接导出文字。 1.一键识别王 https://www.xunjiepdf.com/yijianshibiewang 专业的图片文字识别软件&#xff0…

依赖型人格的症状和起因,依赖型人格测试和应对方法

每个人的性格不同&#xff0c;对待同一件事的处理方式也不一样&#xff0c;很多人在独自面对某些事情的时候&#xff0c;会有非常明显的无助感和孤独感&#xff0c;他们没办法照顾自己&#xff0c;也无法独立作出决定&#xff0c;只能依赖别人。 这种过度依赖的特质就是依赖型…

LT8711UXD助力新款Swtich游戏机底座《4K/60HZ投屏方案》

Nintendo Switch&#xff08;OLED版&#xff09;正面搭载了一块分辨率为720P的7.0英寸OLED屏幕&#xff1b;具有白色和电光蓝电光红2种颜色&#xff1b;机身长度102毫米&#xff0c;宽度242毫米&#xff0c;厚度13.9毫米&#xff0c;重量约420克。 [2]Nintendo Switch&#xff…

《架构风清扬-Java面试系列第26讲》聊聊的LinkedBlockingQueue的特点及使用场景

LinkedBlockingQueue也是BlockingQueue接口的一个实现类之一 这个属于基础性问题&#xff0c;老规矩&#xff0c;我们将从使用场景和代码示例来进行讲解 来&#xff0c;思考片刻&#xff0c;给出你的答案 1&#xff0c;使用场景 实现&#xff1a;基于链表实现的阻塞队列&#…

后端工程师——Java工程师面试小结

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量…

Windows安装Elasticsearch 7.9.2

1 下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-windows-x86_64.zip 2 配置 进入config目录&#xff0c;打开elasticsearch.yml文件&#xff0c;给集群和节点配置名称。 cluster.name: my-es node.name: node-1 3 启动 打开bin目录&am…

​第三方支付方式有哪些?

​第三方支付方式有哪些&#xff1f; 编辑搜图 请点击输入图片描述&#xff08;最多18字&#xff09; 随着电子商务和移动互联网的快速发展&#xff0c;第三方支付方式已经成为我们生活中不可或缺的一部分。这些支付方式不仅为我们提供了方便快捷的交易途径&#xff0c;还在保…

iOS - 多线程-atomic

文章目录 iOS - 多线程-atomic1. 源码分析1.1 get方法1.2 set方法 2. 一般不使用atomic的原因 iOS - 多线程-atomic atomic用于保证属性setter、getter的原子性操作&#xff0c;相当于在getter和setter内部加了线程同步的锁可以参考源码objc4的objc-accessors.mm它并不能保证使…