算法进修Day-33

算法进修Day-33

65. 有效数字

难度:困难
题目要求
有效数字(按顺序)可以分成以下几个部分:

  1. 一个 小数 或者 整数
  2. (可选)一个 'e''E' ,后面跟着一个 整数

小数(按顺序)可以分成以下几个部分:

  1. (可选)一个符号字符('+''-'
  2. 下述格式之一:
    1. 至少一位数字,后面跟着一个点 '.'
    2. 至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字
    3. 一个点 '.' ,后面跟着至少一位数字

整数(按顺序)可以分成以下几个部分:

  1. (可选)一个符号字符('+''-'
  2. 至少一位数字

部分有效数字列举如下:["2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", "-123.456e789"]

部分无效数字列举如下:["abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", "95a54e53"]

给你一个字符串 s ,如果 s 是一个 有效数字 ,请返回 true

示例1

输入:s = “0”
输出:true

示例2

输入:s = “e”
输出:false

示例3

输入:s = “.”
输出:false

题解

可以直接使用正则表达式进行匹配,^\s*-?\d+(\.\d+)?([eE][-+]?\d+)?\s*$为当前正确得正则表达式,解读如下:

  • ^\s*表示以零个、一个或多个空格开头
  • -?表示一个可选的负号
  • \d+表示一个或多个的数字
  • (\.\d+)?表示一个可选的小数部分,包括一个小数点和至少一个数字
  • ([eE][-+]?\d+)?表示科学计数法,包括"e""E",可选的正负号和至少一个数字
  • \s*表示以零个、一个或多个空字符
  • $表示结尾

想法代码

using System.Text.RegularExpressions;class Solution
{private static Regex compare = new Regex(@"^\s*-?\d+(\.\d+)?([eE][-+]?\d+)?\s*$");public static void Main(String[] args){string s = "e";Solution solution = new Solution();Console.WriteLine(solution.IsNumber(s));}public bool IsNumber(string s){return compare.IsMatch(s);}
}

66. 加一

难度:简单
题目要求
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例1

输入:digits = [1,2,3]
输出:[1,2,4]

示例2

输入:digits = [4,3,2,1]
输出:[4,3,2,2]

示例3

输入:digits = [0]
输出:[1]

题解

定义 i n d e x = d i g i t s . L e n g t h − 1 index=digits.Length-1 index=digits.Length1,如果数组中 i n d e x index index 位置为9,那么将 i n d e x index index 前移
如果 i n d e x = = 0 & & d i g i t s [ i n d e x ] = = 9 index==0 \&\& digits[index]==9 index==0&&digits[index]==9,那么对数组扩容, i n d e x index index 位置的内容变为1且对之后的所有元素变为0,如果 i n d e x = = 0 & & d i g i t s [ i n d e x ] ≠ 9 index==0\&\&digits[index]\neq9 index==0&&digits[index]=9 那么将 i n d e x + 1 index+1 index+1并对之后的元素变为0
如果不满足上方条件,则将最后一个元素加一

想法代码

class Solution
{public static void Main(String[] args){int[] digits = { 8,9 };Solution solution = new Solution();int[] res = solution.PlusOne(digits);for (int i = 0; i < res.Length; i++){Console.Write(res[i] + " ");}}public int[] PlusOne(int[] digits){int index = digits.Length - 1;if (digits[digits.Length - 1] == 9){if (digits.Length > 1){while (true){if (index == 0){break;}if (digits[index] == 9){index--;}else{break;}}}if (index == 0 && digits[index] == 9){Array.Resize(ref digits, digits.Length + 1);digits[index] = 1;}else{digits[index] += 1;}for (int i = digits.Length - 1; i > index; i--){digits[i] = 0;}}else{digits[digits.Length - 1] += 1;}return digits;}
}

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

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

相关文章

什么是USRP软件无线电设备?

什么是USRP软件无线电设备&#xff1f; USRP软件无线电设备提供软件定义的RF架构&#xff0c;可让工程师使用自定义信号处理功能来设计、原型验证和部署无线系统。从基于大型开放式FPGA的经济款到高性能无线电设备&#xff0c;多种硬件可满足您的不同需求。您可以使用LabVIEW或…

施密特正交化

相信大家在平时的期末考试中一定少不了对某某向量组执行标准正交化类型的题目。今天我们从这个题目入手&#xff0c;说明这个如何执行施密特正交化&#xff0c;以及为什么要进行正交化。 一、例子 例子&#xff1a;设 a 1 [ 1 2 − 1 ] a_1\begin{bmatrix}1\\2\\-1\end{bmat…

Node-创建Web应用

题记 node创建web应用&#xff0c;以下是所有流程和代码 与php比较&#xff1a;使用 PHP 来编写后端的代码&#xff0c;需要 Apache 或者 Nginx 的 HTTP 服务器&#xff0c;并配上 mod_php5 模块和 php-cgi。 Node应用的组成 node应用由三部分组成&#xff1a; require 指令&a…

vulkan SDK安装

文章目录 一. vulcan官网二.安装流程 一. vulcan官网 https://vulkan.lunarg.com/sdk/home#windows 二.安装流程 点击下载 双击下载的*.exe进行安装 点击下一步 点击下一步 选择安装位置&#xff0c;点击下一步 点击全选&#xff0c;选择下一步 勾选同意&#xf…

PTrade财务数据获取函数的问题

前文介绍了PTrade的get_fundamentals函数&#xff0c;可以用于获取股票的财务数据。但在实际应用中&#xff0c;会遇到如下的问题。 前文我们通过将回测时间设置为2023-05-05进行回测调用get_fundamentals&#xff0c;得到如下查询结果&#xff1a; secu_codepubl_dateend_da…

红队专题-从零开始VC++C/S远程控制软件RAT-MFC-[5]客户端与服务端连接

红队专题 招募六边形战士队员端操作系统SystemInfo类获取系统信息发送系统信息头文件声明头文件调用 未找到来自 OleAcc.dll 的导入LINK 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 端 发送连接->进入主线程->返回socket->…

ps插件Coolorus for Mac中文激活版

Coolorus是一款非常实用的Photoshop插件&#xff0c;它为Photoshop增加了色环配色面板&#xff0c;让设计师可以更直观地选择颜色。同时&#xff0c;Coolorus还提供了多种专业配色方案&#xff0c;如鲜艳色、复古色、日常色等&#xff0c;设计师可以直接套用这些方案&#xff0…

Python中的内存管理:深入分析垃圾回收机制

python中有一个名为refchian的环状双向链表&#xff0c;python运行时创建的所有对象都会添加到refchain中。在refchain中的对象PyObject里都有一个ob_refcnt用来保存当前对象的引用计数器&#xff0c;就是该对象被引用的次数&#xff0c;当对象有新引用时ob_refcnt就会增加&…

SDK 窗口程序创建

目录 Windows 窗口 窗口的基本概念 创建一个窗口的流程 句柄 创建窗口 设计注册窗口类 创建窗口 显示和更新窗口 创建消息循环 消息循环 建立消息循环 窗口过程函数 窗口程序模板&#xff08;多字节&#xff09; 窗口程序模板&#xff08;Unicode&#xff09; Wi…

创新融合,开启电商行业新篇章

随着互联网科技的飞速发展&#xff0c;电商行业正在不断创新和进步。广告电商模式作为一种独特的商业模式&#xff0c;成功地将广告和电商相结合&#xff0c;实现了三方共赢的局面&#xff0c;为行业带来了新的发展方向。一、广告电商模式的定义广告电商模式是一种将广告与电子…

零基础学习HTML5(列表、表格、表单)

01-列表 作用&#xff1a;布局内容排列整齐的区域。 列表分类&#xff1a;无序列表、有序列表、定义列表。 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的区域。 标签&#xff1a;ul 嵌套 li&#xff0c;ul 是无序列表&#xff0c;li 是列表条目。 <ul>…

【RTOS学习】信号量 | 互斥量 | 递归锁

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《RTOS学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 信号量 | 互斥量 | 递归锁 &#x1f37a;信号量&#x1f964;原理&#x1f964;使用信号量的函数&…

基于springboot实现java学习平台项目【项目源码+论文说明】

基于springboot实现java学习平台演示 摘要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括学习平台的网络应用&#xff0c;在外国学习平台已经是很普遍的方式&#xff0c;不过国内的管理平台可能还处于起步阶段。学习平台具…

使用 Typhoeus 和 Ruby 编写的爬虫程序

以下是一个使用 Typhoeus 和 Ruby 编写的爬虫程序&#xff0c;用于爬取 &#xff0c;同时使用了 jshk.com.cn/get_proxy 这段代码获取代理&#xff1a; #!/usr/bin/env rubyrequire typhoeus require jsondef get_proxyurl "https://www.duoip.cn/get_proxy"respon…

Android 13.0 开机动画支持mp4格式视频作为开机动画播放

1.概述 在13.0的系统产品开发中,在系统开机动画这块一般情况下都是播放开机图片,然后绘制多张开机图片形成开机动画模式,而产品需求要求支持开机mp4格式的短视频来作为开机动画播放视频来介绍产品情况,就需要用开机视频来替代开机动画来实现功能 2.开机动画支持mp4格式视频…

正则表达式[总结]

文章目录 1. 为什么要学习正则表达式2. 再提出几个问题&#xff1f;3. 解决之道-正则表达式4. 正则表达式基本介绍5. 正则表达式底层实现(重要)6. 正则表达式语法6.1 基本介绍6.2 元字符(Metacharacter)-转义号 \\\6.3 元字符-字符匹配符6.4 元字符-选择匹配符6.5 元字符-限定符…

寻找数组中最接近目标的数字

要寻找数组中最接近目标的数字&#xff0c;你可以使用一种称为线性搜索或二分搜索的方法&#xff0c;具体取决于数组是否已排序。以下是这两种方法的示例&#xff1a; 1. 线性搜索&#xff08;未排序数组&#xff09;&#xff1a; 如果数组未排序&#xff0c;你可以使用线性搜索…

vscode中4个json的区别和联系

在vscode中快捷键ctrlshiftp&#xff0c;然后输入setting&#xff0c;会出现下图几个选项 当不同设置之间出现冲突时&#xff0c;听谁的&#xff1a; Open Workspace Settings(JSON) > Open Settings(JSON) Open User Settings > Open Default Settings(JSON) Open Wo…

WPF实现签名拍照功能

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

如何理解OSI七层模型?

一、是什么 OSI &#xff08;Open System Interconnect&#xff09;模型全称为开放式通信系统互连参考模型&#xff0c;是国际标准化组织 ( ISO ) 提出的一个试图使各种计算机在世界范围内互连为网络的标准框架 OSI 将计算机网络体系结构划分为七层&#xff0c;每一层实现各自…