力扣(LeetCode)816. 模糊坐标(C++)

news2024/11/27 12:51:05

模拟

一次遍历 s s s ,尝试对遍历到的位置进行分割。对分割点左右字符串 l t lt lt , r t rt rt 分别构造子串。
构造子串的规则:

  1. 整数不以 0 0 0 开头,(特例)单独的 0 0 0 可以作为整数。
  2. 小数不以 0 0 0 结尾。
  3. 小数的整数位是 0 0 0 ,则整数位不能组成新数。(规则 1 1 1 .)

代码展示

class Solution {
public:
    vector<string> get_pos(string s){//生成子串符合条件的所有整数,和小数形式
        vector<string> pos;
        if(s[0]!='0' || s =="0") pos.push_back(s);//整数子串//不以0开头,或者单走一个0。
        for(int p= 1;p<s.size();p++){//小数子串
            if((p!=1&&s[0]=='0')||s.back()=='0') continue;//不以0结尾//小数的整数部分以0开头,只有以0开头的组合。
            pos.push_back(s.substr(0,p)+'.'+s.substr(p,s.size()-1));//0到p-1做整数,p到s.size()-1位做小数。
        }
        return pos;
    }
    vector<string> ambiguousCoordinates(string s) {
        int n = s.length() - 2;//倒数第2个是数字。最后一个是')'
        vector<string> ans;
        s = s.substr(1,n);//只处理数字
        for(int i =1;i<n;i++){//第1个到n-2是数字
            vector<string> lt=get_pos(s.substr(0,i));
            if(lt.empty()) continue;//没有对应子串
            vector<string> rt=get_pos(s.substr(i));
            if(rt.empty()) continue;
            for(auto l:lt)//如果lt,rt有空,不会执行这一步
                for(auto r:rt)//组合//左半//右半
                    ans.push_back('('+l+", "+r+')');
        }
        return ans;
    }
};

博主致语

理解思路很重要!
欢迎读者在评论区留言,作为日更博主,看到就会回复的。

AC

AC

复杂度分析

  1. 时间复杂度: O ( n 3 ) O(n^3) O(n3) n n n s s s 的长度。生成 r t rt rt l t lt lt 的时间复杂度是 O ( n 2 ) O(n^2) O(n2) ,将 r t rt rt l t lt lt 内的数,保存到 a n s ans ans 的时间复杂度是 O ( n 3 ) O(n^3) O(n3)
  2. 空间复杂度: O ( n 3 ) O(n^3) O(n3)。用于存储答案的空间开销,如 r t , l t , p o s rt,lt,pos rt,lt,pos,最坏空间复杂度 O ( n 3 ) O(n^3) O(n3)

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

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

相关文章

怎么给PDF添加页面?推荐三个PDF如何插入页面小妙招

在我们生活中&#xff0c;平时接触PDF文件可能没有接触Word文件那么的多。像处理PDF文件这种问题上并没有Word文件那么的容易&#xff0c;毕竟PDF它不易进行内容编辑。这时候如果有小伙伴需要对PDF文件进行修改或者进行插入页面&#xff0c;但是PDF文件是无法直接进行修改的。那…

做期货的阶段(做期货的几个阶段)

如何自己做好期货 学习交易大致有三阶段&#xff1a;直观直觉阶段&#xff0c;看到涨就做多&#xff0c;看到跌就做空&#xff0c;结果半赢半输&#xff1b;学习积累的阶段&#xff0c;看到涨跌不觉涨跌&#xff0c;想得很多&#xff0c;结果赢少赔多&#xff1b;领悟后再次直…

软件架构师考试的真实感受

近1个半月&#xff0c;因准备了软件架构师的考试&#xff0c;停了BLOG&#xff0c;今天想写点东西作为阶段性的沉淀。 节奏紧 和软设比起来&#xff0c;最直观的感受就是节奏紧&#xff0c;软设上午通常能够提前一个小时考完&#xff0c;加上下午2点才开考&#xff0c;中间有…

Java UML 类图

继承 继承&#xff1a;重用父类的某些功能 缺点&#xff1a;强耦合 耦合&#xff1a;修改一方&#xff0c;会影响另一方 应用&#xff1a;是否需要“向上转型” 接口 行为的抽象、可跨越不同的类 不包含实现实现类需完全实现可实现多个接口 是一种“自顶向下”的设计&…

C++多态(1)

目录1. 多态的概念2. 多态的定义和实现2.1 多态的构成条件2.1.1 重写2.2.2 指针或者引用2.2 虚函数重写的两个例外2.3 多态里的一个不规范的地方2.4 重载、重写&#xff08;覆盖&#xff09;、隐藏&#xff08;重定义&#xff09;的对比3. C11 override 和 final1. 多态的概念 …

QSS编辑器QssEditor之三:Ribbon控件与换肤

一.Ribbon控件 Ribbon控件即Office样式UI,Ribbon控件有许多开源实现,例如:Qt优秀开源项目之三:SARibbon SARibbon功能强大,但以学习为目的的话,我们可以自己去实现一个简单的。基本思路是自定义QTabWidget,然后通过QSS调整样式。 如上图所示,我们可以实现一个类QHRi…

IP数据报首部字段、TCP报文段首部字段

文章目录 IP数据报首部字段IP数据报格式TCP报文段首部字段IP数据报首部字段 首部字段功能1.版本是IPv4还是IPv62.首部长度IP数据报首部的长度3.服务类型4.总长度IP数据报的总长度。若总长度>该网段的MTU,则需要分片。分片后IP数据报的总长度必然发生改变。5.标识保证IP分组…

C++--模板

目录 泛型编程 函数模板 函数模板概念 函数模板格式 函数模板的原理 函数模板的实例化 模板参数的匹配原则 类模板 类模板的定义格式 类模板的实例化 非类型模板参数 模板的特化 概念 函数模板特化 类模板特化 泛型编程 不再是针对某种类型&#xff0c;而是能适…

[python]用flask框架搭建微信公众号的后台

用flask框架搭建微信公众号的后台 最近用python写了点爬虫&#xff0c;为了要让爬取的数据能够随时显示在我眼前&#xff0c;并实时根据我的指令返回数据。于是采用微信公众号做这个显示窗口&#xff0c;既能发送指令也能显示简单的相关数据。 准备工具 python3.x环境 pycharm…

vue3与vue2的不同内容

一、main.js入口文件的不同 // 引入的不再是构造函数&#xff0c;引入了一个名为creacteApp的工厂函数 import { createApp } from vue import ./style.css import App from ./App.vue // 创建应用示例对象--->app const app createApp(App) //把组件APP挂载到#app节点上 …

疫情可视化(后续)

前言 这是疫情可视化最开始的文章&#xff0c;有需要了解的可前往查看&#xff1a;https://blog.csdn.net/xi1213/article/details/126824752。 本来说有时间就把这个项目完结了的&#xff0c;结果后面一直有事拖着&#xff0c;直到现在十一月份了才搞完。老样子&#xff0c;先…

拓端tecdat|R语言代做时间序列和ARIMA模型预测拖拉机销售的制造案例研究

全文链接&#xff1a;http://tecdat.cn/?p5421 原文出处&#xff1a;拓端数据部落公众号 相关视频&#xff1a;在Python和R语言中建立EWMA&#xff0c;ARIMA模型预测时间序列 本文是我们通过时间序列和ARIMA模型预测拖拉机销售的制造案例研究示例的延续。您可以在以下链接中找…

2023第二届中国绿色包装创新峰会|低碳与数字化时代的绿色包装

峰会背景 随着中国市场包装使用量的激增&#xff0c;中国已成为全球最大的包装市场&#xff0c;环境中废弃包装所导致的生态负担也同步加剧。但随着消费者可持续发展意识的显著增强&#xff0c;企业环保意识的提升以及国家强制性环保政策的出台&#xff0c;包装可持续发展变得…

初识C++(三)

概述&#xff1a;本篇主要讲述“引用“ 分别就引用的概念、引用特性、引用的应用场景、以及常引用展开描述。后续会补充引用的底层原理&#xff0c;敬请期待。 目录 什么是引用&#xff1f; 引用的三个特性 引用的应用 引用做参数 引用做返回值 常引用 总结 什么是引用&a…

计算机毕业设计(附源码)python智慧停车系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

纸牌游戏设计制作《摸鱼2》(C语言)

纸牌游戏设计制作《摸鱼2》 此游戏设计属于简单的纸牌游戏&#xff0c;是儿童益智类游戏。适用于儿童的认知教育。 游戏规则极为简单&#xff0c;设置纸牌在界面上显示牌背的盲牌形式&#xff0c;点击牌背显示牌面找出相同的牌配对消牌。 这设置主要培养儿童的心理素质&#x…

Arduino WIFI智能小车 无线视频遥控小车(论文+程序+原理图+驱动+安装手册等)

目录 一、项目产生的背景分析 2 1.1项目想法 2 1.2用户将如何从产品中获益 2-3 二、方案设计 3 2.1小车整体系统 2-3 2.2小车部件介绍 3-5 三、小车组装 6 3.1小车配件购置 6 3.2小车部件组装 7-10 3.3小车程序代码的调试 11 3.3.1小车驱动安装 11 3.3.2小车编程环境&#xff0…

K线形态识别_倒锤头线和射击之星(流星、扫帚星)

写在前面&#xff1a; 1. 本文中提到的“K线形态查看工具”的具体使用操作请查看该博文&#xff1b; 2. K线形体所处背景&#xff0c;诸如处在上升趋势、下降趋势、盘整等&#xff0c;背景内容在K线形态策略代码中没有体现&#xff1b; 3. 文中知识内容来自书籍《K线技术分析》…

R语言—基本统计分析

文章目录基本统计分析1基本方法summary()函数apply()函数lapply()函数sapply()函数2.常见的描述指标标准误binom.test (二项分布精确检验)变异系数极差偏度系数&#xff08;skewness&#xff09;3分组计算描述性统计量aggregate()函数by()函数频数表和列联表列联表生成频数表一…

STM32F103VET6基于STM32CubeMX创建定时器中断控制LED闪烁

STM32F103VET6基于STM32CubeMX创建定时器中断控制LED闪烁&#x1f33c;STM32CubeMX配置界面演示 ⚡需求是通过定时器1来控制LED灯1s亮灭。 &#x1f4cc;工程分为两部分组成&#xff1a;STM32CubeMX创建并配置工程和业务代码完善 &#x1f341;STM32CubeMX创建并配置工程 1.…