ARTS打卡第十六周

IEPE传感器4mA恒流源接口电路 另外传感器的偏置电压大概在10V多点,一般接个电容把直流分量去掉。这里我们要把恒流源的电流设置在4毫安左右,R1取33Ω差不多正好。经过CR的隔直流电路后的波形是这样的。 阅读详情

Algorithm: Leetcode 8. 字符串转换整数 (atoi)

请你来实现一个 atoi 函数,使其能将字符串转换成整数。

首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。

当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。

该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。

注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。

在任何情况下,若函数不能进行有效的转换时,请返回 0。

说明:

假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231,  231 − 1]。如果数值超过这个范围,请返回  INT_MAX (231 − 1) 或 INT_MIN (−231) 。

示例 1:

输入: "42"
输出: 42
示例 2:

输入: "   -42"
输出: -42
解释: 第一个非空白字符为 '-', 它是一个负号。
     我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。
示例 3:

输入: "4193 with words"
输出: 4193
解释: 转换截止于数字 '3' ,因为它的下一个字符不为数字。
示例 4:

输入: "words and 987"
输出: 0
解释: 第一个非空字符是 'w', 但它不是数字或正、负号。
     因此无法执行有效的转换。
示例 5:

输入: "-91283472332"
输出: -2147483648
解释: 数字 "-91283472332" 超过 32 位有符号整数范围。 
     因此返回 INT_MIN (−231) 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/string-to-integer-atoi
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目分析:

  1. 如果字符串是null,或者是空字符串"",或者全是空格,不用转换,返回0;
  2. 字符串开头除了空格之外的第一个字符如果不是'+'或者'-',或者不是0-9的数字,则认为字符串是无效的,返回0;
  3. 如果第一字符是'+'或者'-',则后面至少要有一个数字,否则返回0;
  4. 如果第一个字符是数字,则隐含符号是'+';
  5. '+'不用显示出来;
  6. 在满足上述条件的情况下,字符串中第一次出现的连续数字是有效数字,需要被转换,之后的所有字符都忽略(无论之后的字符中是否包含数字);
  7. 如果结果超出了32位有符号整数的表示范围,则根据符号位返回32位有符号整数允许的最大值或者最小值;
public int myAtoi(String str) {
        // str is null or empty
        if (str == null || (str = str.trim()).isEmpty()) {
            return 0;
        }

        int start;
        char sign;
        char firstChar = str.charAt(0);
        if (firstChar == '+' || firstChar == '-') {
            start = 1;
            sign = firstChar;
        } else if (firstChar >= '0' && firstChar <= '9') {
            start = 0;
            sign = '+';
        } else {
            // invalid start char
            return 0;
        }

        int ans = 0;
        for (int i = start; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                break;
            }
            int num = c - '0';
            if ((Integer.MAX_VALUE - num) / 10 < ans) {
                return sign == '+' ? Integer.MAX_VALUE : Integer.MIN_VALUE;
            }
            ans = ans * 10 + num;
        }
        return sign == '+' ? ans :  -ans;
    }

复杂度分析:

假设四则运算的复杂度都是O(1),那么 trim() 方法会遍历两次字符串(当然trim的动作也可以放到我们的for循环里做),for循环会遍历一次字符串,所以时间复杂度是O(n);

空间复杂度是O(1),因为只引入了几个int和char型的变量

Review:

Tip: vim编辑器常用命令

全选:ggVG
全选删除:ggVGd
全选复制到剪贴板:ggVG+y

向上翻页:ctrl + b
向下翻页:ctrl + f
向上翻半页:ctrl + u
向下翻半页:ctrl +d

查找:/{待查找内容},例如 /foo   。  如果找到的内容有多处,按N键跳到下一处。

替换:
:%s/foo/bar/g     在全文(%)中替换所有(g)的foo为bar

:%s/foo/bar/gc    在全文(%)中替换所有(g)的foo为bar,每一次替换都需要确认(c)。
提示:replace with bar (y/n/a/q/l/^E/^Y)?    
y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。^E与^Y是光标移动快捷键

Share:

CiteSpace基础操作(CNKI数据的导入分析)(一) 1 Cite Space简单介绍 2 文献导入 2.1 打开知网,选择高级检索 阅读详情

相关推荐

GSM的“时间管理大师”:TDMA时隙、突发脉冲与逻辑信道映射实战图解

本文深入解析GSM网络中的TDMA时隙调度与逻辑信道映射技术,揭示2G网络如何通过精密的时间管理和突发脉冲设计实现高效通信。从TDMA帧结构到GMSK调制优化,详细介绍了GSM的工程艺术及其在现代通信中的延续价值。

weixin_30631587的博客 514

《左耳听风》-ARTS-打卡记录-第十六周

《左耳听风》-ARTS-打卡记录-第十六周 Algorithm Review Welcome 欢迎 The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. ZeroMQ sockets provide an

Stephen___Qin的博客 187

核磁分析必备,ACD/Labs软件使用全解析

核磁共振(NMR)是化学分析中的重要工具,而ACD/Labs提供了一套强大的软件解决方案。从实验设计到数据解读,ACD/Labs 的 NMR 预测可以显著加快您的工作流程。使用 ACD/NMR 预测可以:根据化学结构预测 1H、13C、15N、19F 和 31P 核的全套 1D 和 2D NMR 光谱;在几秒钟内计算化学位移和耦合常数;利用内部数据训练算法,提高新化学空间的准确性。

a13981820402的博客 5635

ARTS挑战打卡第十六周

Algorithm-一周至少一道算法题Review-阅读并点评至少一篇英文技术文章Tip-学习至少一个技术技巧,总结和归纳在日常工作中所遇到的知识点Share-分享一篇有观点和思考的技术...

yipiankongbai的专栏 308

Unity序列帧动画输出全攻略:Recorder+Timeline实战与透明通道处理

序列帧动画是游戏开发、影视动画和UI动效中的基础技术,指将连续动作分解为一系列静态图像并按序播放,形成动态视觉效果。其原理是通过时间轴精确控制每一帧的内容与时机,实现动画的逐帧呈现。在实时渲染领域,序列帧输出技术价值显著,它能够将动态内容高质量地转换为静态图像序列,便于跨平台复用、后期合成与资源分发。应用场景广泛,包括角色动画导出、技能特效制作、宣传片素材生成等。本文聚焦Unity引擎,深入解析如何利用Recorder与Timeline工具链,高效输出带Alpha透明通道的PNG序列帧,并重点攻克透明通道处

weixin_31556767的博客 327

【β-Boltzmann探索策略】

𝜀是一个介于0和1之间的参数,用于控制探索和利用的比例。当𝜀较大时,智能体更倾向于探索;当𝜀较小时,智能体更倾向于利用已知信息。

m0_59385870的博客 1086

ARTS打卡计划第十六周

Algorithms: https://leetcode-cn.com/problems/min-stack/submissions// Review: https://www.infoq.cn/article/why-do-we-need-webrtc Tips: android handler。 主线程不做处理复杂的问题,创建hanlder发消息到主线程,主线程loop ...

weixin_30762087的博客 141

【万字长文】学习Armv8架构虚拟化一篇就够了

这里我们将介绍一些基础的Hypervisor和虚拟化的理论知识。如果你已经有一定的基础或是已经熟悉了这些概念,可以跳过这部分内容。我们用Hypervisor这个词来定义一种负责创建,管理以及调度虚拟机(Virtual Machines, VMs)的软件。Stage 2 转换允许Hypervisor控制虚拟机的内存视图。具体来说,其可以控制虚拟机是否可以访问特定的某一块物理内存,以及该内存块出现在虚拟机内存空间的位置。这种能力对于虚拟机的隔离和沙箱功能来说至关重要。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 5317

Dimple在左耳听风ARTS打卡(十六)

所谓ARTS:每周至少做一个LeetCode的算法题;阅读并点评至少一篇英文技术文章;学习至少一个技术技巧;分享一篇有观点和思考的技术文章。(也就是Algorithm、R...

程序员小跃的专栏 276

MATLAB自动驾驶(1)——预构建场景库

MATLAB自动驾驶(1)——预构建场景库

Ucicorn Gundam的博客 3265

SAP_SD模块路径及运输功能后台配置简介

后台路径:SPRO—后勤执行—装运—基本发运功能—定义路线—定义传输模式根据实际运输过程运输地理的类型:海运、公路运输、空运后台路径:SPRO—后勤执行—装运—基本发运功能—定义路线—定义发运类型根据实际运输过程运输方式:汽车、卡车、火车、轮船、飞机后台路径:SPRO—后勤执行—装运—基本发运功能—路径—定义路线—定义运输连接点指在运输过程中需要中转的地区可以维护中转地区的停留的时间后台路径:SPRO—后勤执行—装运—基本发运功能—路径—定义路线—定义路径和阶段。

我小时候很黑的博客 1398

ARTS挑战第十六周

1.Algorithm 2.Review 3.Tip 3.1 oralce 小数转字符串丢失0 错误: SELECT 0.1 || '%' FROM DUAL // .1% 正解: SELECT TO_CHAR(0.1234,'fm9999999990.00') ||'%' FROM DUAL //0.10% 4.Share

言凡的博客 302

YOLOv11改进 | 细节涨点篇 | DySample一种最新的轻量化动态上采样算子(效果完爆CARAFE)

本文给大家带来的最新改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子),

Snu77的博客 4211

ARTS 挑战记录目录

在知乎看到一个有意思的东西,就是ARTS挑战,具体含义如下 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS) 感觉自己原来看的东西确实很多都忘了,时间就匆匆过去了,几年大学时光学的东西也忘的差不多了,本来我的职业规划里面就是不断巩固、拓展自己的知识,形成知识闭环,但是总是没有很好的实施。现在2021年2月28日起,我也向自

超级码力 413

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ARTS打卡第二周

Algorithm: Leetcode: 7. Reverse Integer Review: How to be a great programmer Tips: vim快捷键 Share: 对自律上瘾后,人生开挂了

小虾米的专栏 2033

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ARTS打卡第一周

Algorithm:https://blog.youkuaiyun.com/fxdaniel/article/details/88960081 Review:https://blog.youkuaiyun.com/fxdaniel/article/details/88977617 Tip:将本地已有的git仓库关联到一个新的远程仓库: cd existing_git_repo git remote rename orig...

小虾米的专栏 1697

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ARTS打卡第四周

Algorithm: Leetcode:190. Reverse bits of a given 32 bits unsigned integer. Example 1: Input: 00000010100101000001111010011100 Output: 00111001011110000010100101000000 Explanation: The input binary str...

小虾米的专栏 1661

ARTS打卡第三周

Algorithm:Leetcode: 80. Remove Duplicates from Sorted Array II Given a sorted array nums, remove the duplicates in-place such that duplicates appeared at most twice and return the new length. Do not a...

小虾米的专栏 618

ARTS打卡第十一周

Algorithm:21. 合并两个有序链表 Review: What Your IP Address Reveals About You and Why You Should Hide It //Tip: 使用Jersey上传文件 Share: Jersey 开发RESTful(十二)Jersey上传下载

小虾米的专栏 539

ARTS打卡第七周

Algorithm:Leetcode 19 Review: The Huawei Sanction Might Just Pop the Tech Bubble Tip: MySQL事务隔离级别 Share: iptables入门

小虾米的专栏 415

ARTS打卡第十七周

Algorithm:Leetcode 950. Reveal Cards In Increasing Order Tips: 将自己的电脑加入服务器信任列表实现免密登陆

小虾米的专栏 401

ARTS打卡第六周

Algorithm: Leetcode 445. 两数相加 II 题目描述: You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first and each of their nodes contain a single ...

小虾米的专栏 349

ARTS打卡第十五周

Algorithm:Leetcode 933. 最近的请求次数 Tip:使用脚本clone gitlab上一个group下的所有project

小虾米的专栏 299

ARTS打卡第十二周

Algorithm:141. 环形链表 Review: What Is MLAG Networking? Tip: 使用Jersey的Response返回JDK自带数据类型的集合 Share: 分析源码,学会正确使用 Java 线程池

小虾米的专栏 291

ARTS打卡第八周

Algorithm: Leetcode 92. 反转链表 II;Review: Virtual Reality Trends 2019 Tip:如何批量删除docker中tag为<none>的镜像 Share:影响了我二十年的三个原则

小虾米的专栏 275

ARTS打卡第十三周

Algorithm:Leetcode 739 每日温度 Tip: 使用Hibernate写库中文出现乱码的解决办法 Share: java源码Integer.bitCount算法解析,分析原理(统计二进制bit位)

小虾米的专栏 241
上一篇: ARTS打卡第十五周
下一篇: ARTS打卡第十七周
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值