二进制求和、字符串相加-sting类题型

67. 二进制求和 - 力扣(LeetCode)

两个题目方法完全一样

用两个数据的末尾位相加,从末尾位开始逐位相加,记录进位;

class Solution {
public:
    string addBinary(string a, string b) {
        int end1 = a.size() - 1;
        int end2 = b.size() - 1;
        string num;//最终的结果
        int next = 0;//进位    
        while(end1 >= 0 || end2 >= 0)
        {
            int val1 = 0, val2 = 0;
            if(end1 >= 0)
                val1 = a[end1] - '0';
            if(end2 >= 0)
                val2 = b[end2] - '0';

            int sum = val1 + val2 + next;
            if(sum > 1)
            {
                sum -= 2;
                next = 1;
            }
            else
            {
                next = 0;
            }

            num.push_back(sum + '0');

            end1--;
            end2--;
        }
        if(next == 1)
        {
            num.push_back('1');
        }
        reverse(num.begin(),num.end());
        return num;
    }
};

reverse是stl里面的算法,就是逆置;

+=都是头插;

方法是先用个位相加,然后有进位的标记;

其中首先他是字符所以减去'0',ascll码相减就会变成能加减的数值,最后还要转变回来,所以+'0'

415. 字符串相加 - 力扣(LeetCode)

class Solution {
public:
    string addStrings(string num1, string num2) {
        int end1 = num1.size() - 1;
        int end2 = num2.size() - 1;
        string retstr;
        int next = 0;//进位

        while(end1 >= 0 || end2 >= 0)
        {
            int val1 = 0, val2 = 0;
            if(end1 >= 0)
                val1 = num1[end1] - '0';//字符串相减
            if(end2 >= 0)
                val2 = num2[end2] - '0';
            int ret = val1 + val2 + next;

            if(ret > 9)
            {
                ret -= 10;
                next = 1;
            }
            else
            {
                next = 0;
            }
            retstr += (ret + '0');
            --end1;
            --end2;
        }
        if(next == 1){
            retstr += "1";
        }
        reverse(retstr.begin(), retstr.end());
        return retstr;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qwen2部署实战】Ollama上的Qwen2-7B:一键部署大型语言模型指南

系列篇章💥 No.文章1【Qwen部署实战】探索Qwen-7B-Chat:阿里云大型语言模型的对话实践2【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人3【Qwen2部署实战】探索Qwen2-7B:通过FastApi框架实现API的部署与调用4【Q…

做有一个有表情且会动的 Finder

作为一只合格的互联网巡回猎犬,今天给大家分享一个有趣且无聊的小工具,摸鱼发呆必备,可以说是一件「无用良品」了。 软件介绍 Mouse Finder 长的跟访达差不多,功能也一样,但有一个重要区别:眼睛会跟随鼠标…

YOLOv8数据集可视化[目标检测实践篇]

先贴代码,后面再补充解析。 这个篇章主要是对标注好的标签进行可视化,虽然比较简单,但是可以从可视化代码中学习到YOLOv8是如何对标签进行解析的。 下面直接贴代码: import cv2 import numpy as np import osdef read_det_labels(label_file_path):with open(labe…

DAY20-力扣刷题

1.填充每个节点的下一个右侧节点指针 116. 填充每个节点的下一个右侧节点指针 - 力扣(LeetCode) 方法一:层次遍历 class Solution {public Node connect(Node root) {if (root null) {return root;}// 初始化队列同时将第一层节点加入队列…

动手学深度学习(Pytorch版)代码实践 -循环神经网络-51序列模型

51序列模型 import torch from torch import nn from d2l import torch as d2l import matplotlib.pyplot as pltT 1000 # 总共产生1000个点 time torch.arange(1, T 1, dtypetorch.float32) x torch.sin(0.01 * time) torch.normal(mean0, std0.2, size(T,)) d2l.plot(…

【IT领域新生必看】Java编程中的神奇对比:深入理解`equals`与`==`的区别

文章目录 引言什么是操作符?基本数据类型的比较示例: 引用类型的比较示例: 什么是equals方法?equals方法的默认实现示例: 重写equals方法示例: equals与的区别比较内容不同示例: 使用场景不同示…

CSS position属性之relative和absolute

目录 1 参考文章2 五个属性值3 position:static4 position:relative(相对)5 position:absolute(绝对) 1 参考文章 https://blog.csdn.net/lalala_dxf/article/details/123566909 https://blog.csdn.net/WangMinGirl/article/deta…

番外篇 | 手把手教你如何去更换YOLOv5的检测头为IDetect | 源于RCS-YOLO

前言:Hello大家好,我是小哥谈。凭借速度和准确性之间的出色平衡,YOLO框架已成为最有效的目标检测算法之一。然而,在脑肿瘤检测中很少研究使用YOLO网络的性能。对此本文提出了一种基于RCS-YOLO的重新参数化卷积的新型YOLO架构。与YOLOv7相比,RCS-YOLO的精度提高了2.6%,推理…

MWC上海展 | 创新微MinewSemi携ME54系列新品亮相Nordic展台

6月28日, 2024MWC上海圆满落幕,此次盛会吸引了来自全球124个国家及地区的近40,000名与会者。本届大会以“未来先行(Future First)”为主题,聚焦“超越5G”“人工智能经济”“数智制造”三大子主题,探索讨论…

苹果电脑清理app垃圾高效清理,无需专业知识

在我们的日常使用中,苹果电脑以其优雅的设计和强大的功能赢得了广泛的喜爱。然而,即便是最高效的设备,也无法免俗地积累各种不必要的文件和垃圾,特别是app垃圾。所以,苹果电脑清理app垃圾高效清理,对于大多…

数据的存储方式——大小端序

大小端存储的故事源自于《格列佛游记》(Gullivers Travels),这是爱尔兰作家乔纳森斯威夫特(Jonathan Swift)于1726年所著的一部讽刺小说。在其中,主人公格列佛(Lemuel Gulliver)游历…

三相感应电机的建模仿真(2)基于ABC相坐标系S-Fun的仿真模型

1. 概述 2. 三相感应电动机状态方程式 3. 基于S-Function的仿真模型建立 4. 瞬态分析实例 5. 总结 6. 参考文献 1. 概述 前面建立的三相感应电机在ABC相坐标系下的数学模型是一组周期性变系数微分方程(其电感矩阵是转子位置角的函数,转子位置角随时…

【Python】基于KMeans的航空公司客户数据聚类分析

💐大家好!我是码银~,欢迎关注💐: CSDN:码银 公众号:码银学编程 实验目的和要求 会用Python创建Kmeans聚类分析模型使用KMeans模型对航空公司客户价值进行聚类分析会对聚类结果进行分析评价 实…

面向物联网行业的异常监控追踪技术解决方案:技术革新与运维保障

在现代高度数字化和互联的环境中,物联网技术已经深入到我们生活的方方面面。特别是在家庭和工业环境中,物联网系列通讯作为连接各类设备的关键枢纽,其稳定性和可靠性显得尤为重要。本文将介绍一种创新的监控系统,旨在实时跟踪和分…

用Python轻松转换PDF为CSV

数据的可访问性和可操作性是数据管理的核心要素。PDF格式因其跨平台兼容性和版面固定性,在文档分享和打印方面表现出色,尤其适用于报表、调查结果等数据的存储。然而,PDF的非结构化特性限制了其在数据分析领域的应用。相比之下,CS…

DFS之剪枝与优化——AcWing 165. 小猫爬山

DFS之剪枝与优化 定义 DFS之剪枝与优化指的是在执行深度优先搜索(DFS, Depth-First Search)时,采取的一系列策略来减少搜索空间,避免无效计算,从而加速找到问题的解。剪枝是指在搜索过程中,当遇到某些条件不符合解的要求或者可以…

Day05-02-Jenkins-pipeline

Day05-02-Jenkins-pipeline 1. Jenkins-Pipeline概述1) pipeline? 2. pipeline格式3. 小试牛刀4. Java上线的项目4.1 流程汇总4.2 根据流程书写pipeline架构4.3 分步实现1)拉取代码2)检查,编译,部署 4.4 完整pipeline代码 5. 根据tag标签拉取代码(了解自…

FreeBSD@ThinkPad x250因电池耗尽关机后无法启动的问题存档

好几次碰到电池耗尽FreeBSD关机,再启动,网络通了之后到了该出Xwindows窗体的时候,屏幕灭掉,网络不通,只有风扇在响,启动失败。关键是长按开关键后再次开机,还是启动失败。 偶尔有时候重启到单人…

温州网站建设方案及报价

随着互联网的发展,网站建设已经成为企业推广和营销的重要手段。温州作为中国经济发达地区之一,各行各业企业纷纷意识到网站建设的重要性,纷纷加大网站建设工作的投入。那么,温州网站建设方案及报价是怎样的呢?下面我们…

深入理解C# log4Net日志框架:功能、使用方法与性能优势

文章目录 1、log4Net的主要特性2、log4Net框架详解配置日志级别 3、log4Net的使用示例4、性能优化与对比5、总结与展望 在软件开发过程中,日志记录是一个不可或缺的功能。它可以帮助开发者追踪错误、监控应用程序性能,以及进行调试。在C#生态系统中&…