当前位置: 首页 > news >正文

leetcode算法题--表示数值的字符串

原题链接:https://leetcode.cn/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/description/?envType=study-plan-v2&envId=coding-interviews

题目类型有点新颖,有限状态机

// CharType表示当前字符的类型
// State表示当前所处的状态
type State int
type CharType intconst (CHAR_SPACE CharType = iotaCHAR_POINTCHAR_NUMBERCHAR_ECHAR CHAR_SINGAL CHAR_INVALID
)func getType(ch byte) CharType {switch(ch){case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':return CHAR_NUMBERcase '.':return CHAR_POINTcase '+', '-':return CHAR_SINGAL
//        case ' ':
//            return CHAR_SPACEcase 'e', 'E':return CHAR_ECHAR} return CHAR_INVALID
}const (STATE_INIT State = iotaSTATE_INIT_POINTSTATE_INIT_SINGALSTATE_NUMBERSTATE_NUMBER_POINTSTATE_POINT_NUMBERSTATE_ECHARSTATE_ECHAR_NUMBERSTATE_ECHAR_SINGAL
)func isNumber(s string) bool {tranfer := map[State]map[CharType]State{STATE_INIT: {CHAR_SINGAL: STATE_INIT_SINGAL,CHAR_POINT: STATE_INIT_POINT,CHAR_NUMBER: STATE_NUMBER,}, STATE_INIT_POINT: {CHAR_NUMBER: STATE_POINT_NUMBER,},STATE_NUMBER: {CHAR_NUMBER: STATE_NUMBER,CHAR_POINT: STATE_NUMBER_POINT,CHAR_ECHAR: STATE_ECHAR,},STATE_INIT_SINGAL: {CHAR_POINT: STATE_INIT_POINT, CHAR_NUMBER: STATE_NUMBER, },STATE_ECHAR: {CHAR_SINGAL: STATE_ECHAR_SINGAL,CHAR_NUMBER: STATE_ECHAR_NUMBER,},STATE_NUMBER_POINT: {CHAR_NUMBER: STATE_POINT_NUMBER,CHAR_ECHAR: STATE_ECHAR, },STATE_POINT_NUMBER: {CHAR_NUMBER: STATE_POINT_NUMBER, CHAR_ECHAR: STATE_ECHAR, },STATE_ECHAR_NUMBER: {CHAR_NUMBER: STATE_ECHAR_NUMBER,}, STATE_ECHAR_SINGAL: {CHAR_NUMBER: STATE_ECHAR_NUMBER,},}state := STATE_INITss := strings.TrimSpace(s)for i := range ss {ch := ss[i]ty := getType(ch)if ty == CHAR_INVALID {return false}if st, ok := tranfer[state][ty]; ok {state = st} else {return false}}switch state {case STATE_NUMBER, STATE_POINT_NUMBER, STATE_NUMBER_POINT, STATE_ECHAR_NUMBER:return true}return false
}

相关文章:

leetcode算法题--表示数值的字符串

原题链接:https://leetcode.cn/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/description/?envTypestudy-plan-v2&envIdcoding-interviews 题目类型有点新颖,有限状态机 // CharType表示当前字符的类型 // State表示当前所处的状态 type State…...

Docker安装及Docker构建简易版Hadoop生态

一、首先在VM创建一个新的虚拟机将Docker安装好 更新系统:首先打开终端,更新系统包列表。 sudo apt-get update sudo apt-get upgrade下图是更新系统包截图 安装Docker:使用以下命令在Linux上安装Docker。 sudo apt-get install -y docker.i…...

使用Burp Suite进行Web应用渗透测试

使用Burp Suite进行Web应用渗透测试是一种常见的方法,可以帮助发现Web应用程序中的安全漏洞和弱点。 步骤: 准备工作: 首先,确保已经安装了Burp Suite,并配置浏览器以使用Burp Suite作为代理。 配置代理:…...

Github的使用指南

首次创建仓库 1.官网创建仓库 打开giuhub官网,右上角点击你的头像,随后点击your repositories 点击New开始创建仓库 如下图为创建仓库的选项解释 出现如下界面就可以进行后续的git指令操作了 2.git上传项目 进入需上传项目的所在目录,打开…...

mongodb 添加加点 stateStr 停在 STARTUP

解决办法 PRIMARY 节点是的host 是否是内网IP,如果是内网IP 需要切换成外网IP 即可;...

c语言中编译过程与预处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、c语言的编译与链接1、编译与链接概述2、编译与链接详解 二、c语言预处理1.c语言中内置的预定义符号2、#define定义标识符3、#define定义宏4、#define 替换规…...

TP-LINK 路由器设置内网穿透

TP-LINK 路由器设置内网穿透 开发中经常遇到调用第三方软件回调调试的情况,例如微信开发,支付回调等测试,用内网穿透是一种简单的方式也是偷懒的方式。 以TP-LINK路由器为例实现内网穿透 登录路由器 2.找到路由器虚拟服务器,添加…...

A 题国际旅游网络的大数据分析-详细解析与代码答案(2023 年全国高校数据统计与调查分析挑战赛

请你们进行数据统计与调查分析,使用附件中的数据,回答下列问题: ⚫ 问题 1: 请进行分类汇总统计,计算不同国家 1995 年至 2020 年累计旅游总人数,从哪个国家旅游出发的人数最多,哪个国家旅游到达的人数最多…...

《深入理解Java虚拟机》读书笔记: 类加载器

类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类加载器可以说是Java语言的一项创新&…...

宝塔计划任务读取文件失败

想挂计划任务 相关文章【已解决】计划任务读取文件失败 - Linux面板 - 宝塔面板论坛 对方反馈的是执行下面的命令 chattr -ai /var/spool/cron 后来发现直接没有这个文件夹,然后通过mkdir命令创建文件夹,成功在宝塔创建了计划任务 后面发现任务虽然添…...

Python操作sql,备份数据库

1、批量执行sql import pymysql# 执行批量的 SQL 语句 def executeBatchSql(cursor, sqlStatements):for sql in sqlStatements:try:cursor.execute(sql)print(Executed SQL statement:, sql)except Exception as e:print(Error executing SQL statement:, e)# 创建数据库连接…...

Linux线程 --- 生产者消费者模型(C语言)

在学习完线程相关的概念之后,本节来认识一下Linux多线程相关的一个重要模型----“ 生产者消费者模型” 本文参考: Linux多线程生产者与消费者_红娃子的博客-CSDN博客 Linux多线程——生产者消费者模型_linux多线程生产者与消费者_两片空白的博客-CSDN博客…...

Vue2向Vue3过度核心技术computed计算属性

目录 1 computed计算属性1.1 概念1.2 语法1.3 注意1.4.案例1.5.代码准备 2 computed计算属性 VS methods方法2.1 computed计算属性2.2 methods计算属性2.3 计算属性的优势2.4 总结 3 计算属性的完整写法 1 computed计算属性 1.1 概念 基于现有的数据,计算出来的新属…...

芯片行业震荡期,数字后端还可以入吗?

自去年开始,芯片行业仿佛进入了动荡期,经历了去年秋招和今年春招的小伙伴都知道,如今找工作有多难。 半导体行业人才缩减、各大厂裁员,在加上高校毕业生人数破千万,对于即将踏入IC这个行业的应届生来说,今…...

“精准时空”赋能制造业智能化发展

作者:邓中亮 高达动态厘米级的高精度定位服务,不仅是北斗卫星导航系统的一大独门绝技,其在产业化应用层面也已逐步向普适化、标配化演进,并延展出时空智能新兴产业。 5月17日,当长征三号乙运载火箭成功发射北斗系统的…...

Kotlin协程flow发送时间间隔debounce

Kotlin协程flow发送时间间隔debounce debounce的作用是让连续发射的数据之间间隔起来。典型的应用场景是搜索引擎里面的关键词输入,当用户输入字符时候,有时候,并不希望用户每输入任何一个单字就触发一次后台真正的查询,而是希望…...

ServiceManager接收APP的跨进程Binder通信流程分析

现在一起来分析Server端接收(来自APP端)Binder数据的整个过程,还是以ServiceManager这个Server为例进行分析,这是一个至下而上的分析过程。 在分析之前先思考ServiceManager是什么?它其实是一个独立的进程,由init解析i…...

Git问题:解决“ssh:connect to host github.com port 22: Connection timed out”

操作系统 Windows11 使用Git IDEA 连接方式:SSH 今天上传代码出现如下报错:ssh:connect to host github.com port 22: Connection timed out 再多尝试几次,依然是这样。 解决 最终发现两个解决方案:(二选一&#xf…...

在Eclipse中创建javaweb工程

新建动态web工程 点击project或other之后,如何快速找到Dynamic Web Project 填写工程名等详细信息 也许会出现下面的对话框 项目结构图...

Pycharm链接远程mysql报错

Pycharm链接远程mysql配置及相应报错如下: 解决方法: 去服务器确认Mysql版本号: 我的Mysql为5.7.43,此时Pycharm mysql驱动为8.0版本,不匹配,所以需要根据实际的版本选择对应的驱动;选择对应的版…...

企业网盘怎么选?从同步效率、权限、安全合规到协作:2025横评清单

随着企业数字化办公深化,企业网盘承载的内容从项目文件扩展到合同、投研材料、设计源文件、制度文档与交付归档。选型时如果只看容量和下载速度,往往会忽略更关键的管理问题:越权共享如何追责、误删误改如何恢复、离职交接如何确保资料不丢、…...

WeChatFerry:微信机器人自动化框架的终极技术指南

WeChatFerry:微信机器人自动化框架的终极技术指南 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/GitHub_Trending/w…...

还在为图表制作烦恼?Mermaid Live Editor让你3分钟搞定专业图表

还在为图表制作烦恼?Mermaid Live Editor让你3分钟搞定专业图表 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-li…...

书匠策AI:你的论文过不了关?http://www.shujiangce.com这套组合拳直接救场!

开篇一句话:2025年写论文,拼的不是文笔,是"过关能力"。 查重40%以上被打回,AIGC检测疑似度超标被标记——这两座大山压在每个毕业生头上。你是不是也经历过这种绝望:明明每个字都是自己敲的,系统…...

Agent_Skills_万千应用_第03篇_PPT 生成 Skill:从资料到可演示幻灯片

Agent Skills 万千应用 第03篇 PPT 生成 Skill:从资料到可演示幻灯片01|场景痛点:PPT 最难的不是做,而是“讲清楚” 你有没有遇到过这种情况? 老板临时说:“明天下午做个 10 分钟汇报。” 你手里有一堆资料…...

Montserrat可变字体深度解析:实现响应式排版的最佳实践

Montserrat可变字体深度解析:实现响应式排版的最佳实践 【免费下载链接】Montserrat 项目地址: https://gitcode.com/gh_mirrors/mo/Montserrat Montserrat字体项目是一款源自布宜诺斯艾利斯传统街区的开源字体,以其独特的城市排版风格和灵活的可…...

Awesome Video终极指南:从零开始掌握流媒体视频技术栈

Awesome Video终极指南:从零开始掌握流媒体视频技术栈 【免费下载链接】awesome-video A curated list of awesome streaming video tools, frameworks, libraries, and learning resources. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-video 流媒…...

信通院:人工智能模数共振体系研究报告(2026年)

这份由中国信通院与中车工业研究院 2026 年 5 月发布的《人工智能模数共振体系研究报告(2026 年)》,聚焦数据与模型双向共振,系统阐释模数共振体系内涵、核心要素、能力支撑、协同机制并给出落地建议,为 AI 与实体经济…...

B-Parameter小模型:精度、速度与成本的帕累托最优

1. 小模型正在悄悄改写游戏规则:为什么10B参数的模型能干翻100B巨兽?最近在几个技术团队做模型选型咨询,几乎每场讨论都会有人抛出这个问题:“我们业务场景明明很垂直,推理延迟要求严苛,GPU显存还卡在24G&a…...

C 语言通讯录(终版)|新手踩坑全总结 + 最终可运行代码博客简介

系列回顾 本系列三篇完整闭环: 第一篇(基础版):从零实现增删查改 文件存储,踩遍新手所有坑(格式符乱码、文件闪退、输入死循环);第二篇(优化版)&#xff1…...