【刷题心得】双指针法|HashSet<T>

news2024/9/22 16:23:14

题目

1 概念梳理

1.1 ISet<T> HashSet<T>

包含不重复元素的集合称为“集set”。.NET Framework包含两个集HashSet<T>和SortedSet<T>,其中HashSet<T>包含不重复元素的无序列表,SortedSet<T>包含不重复元素的有序列表。

ISet<T>接口提供的方法可以创建合集,交集。

1.2 Char.IsDigit()

参考:C# Char.IsDigit()用法及代码示例 - 纯净天空 (vimsky.com)

是一种检查Unicode字符是否可以归类为十进制数,有两种:

Char.IsDigti(Char)——检查指定的字符是否为十进制数

Char.IsDigti(String, Int)——指定位置的指定字符串是否与十进制数匹配

1.3 数字问题,去除前导0

去除前导零的意思就是,有时经过判断后输出的必须是有实际意义的数字,那么“01”“0001”与1意义相同。所以需要加上一步”判断是否为0且去除“的操作。

1.4 对HashSet的操作

C# HashSet 用法_IT技术猿猴的博客-CSDN博客_c# hashset

点入链接,直接回顾一下C#中哈希添加和删除清空等修改操作。

1.5 正则表达式

参考:

正则表达式的一些术语

包括有a到z之间的字母,还有一些特殊字符。例如这道题后面还想除了一种解法,但是很奇怪用时会超出。

2 解题

老老实实用双指针,最后去除前导零就行。

public class Solution {
    public int NumDifferentIntegers(string word) {
        HashSet<string> str = new HashSet<string>();
        int n = word.Length;
        int p1, p2=0;
        while(true) {
            while(p2<n&&!Char.IsDigit(word[p2])) {
                p2++; //until:
            }
            if(p2==n) {
                break;
            }
            p1=p2;
            while(p2<n&&Char.IsDigit(word[p2])) {
                p2++;
            }
            while(p1+1<p2&&word[p1]=='0') {
                p1++;
            }
            str.Add(word.Substring(p1, p2 - p1));
        }
        return str.Count;
    }
}

另外在力扣网还看到了用正则巧妙地做的答案:[Java/C++] 简单模拟题 - 字符串中不同整数的数目 - 力扣(LeetCode)

class Solution {
    public int numDifferentIntegers(String word) {
        Set<String> set = new HashSet<>();
        for (String str : word.split("[a-z]+")) if (str.length() > 0) set.add(str.replaceAll("^0+",""));
        return set.size();
    }
}

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

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

相关文章

数据科学必备Python编程基础

前言 对于Python复杂的编程语言中提取了数据分析常用的数据处理以及数据可视化等数据分析师常用的内容&#xff0c;区别与其他的Python编程教程&#xff0c;如果是纯开发的小伙伴&#xff0c;看完本系列的文章仅仅只能掌握数据相关处理的内容&#xff0c;并不能完全掌握开发方…

RestoreDet

来说说低分辨率图像中目标检测吧~~ 超分辨率&#xff08;SR&#xff09;等图像恢复算法是退化图像中目标检测不可或缺的预处理模块。然而&#xff0c;这些算法中的大多数假设退化是固定的并且是先验已知的。 论文地址&#xff1a;https://arxiv.org/pdf/2201.02314.pdf 当真…

四、文件管理(三)文件系统

目录 3.1文件系统结构 3.2文件系统布局 3.2.1文件系统在外存中的结构 3.2.2文件系统在内存中的结构 3.3外存空闲空间管理 3.3.1空闲表法 3.3.2空闲链表法 3.3.3位示图法 3.3.4成组链接法 3.4虚拟文件系统 3.5文件系统挂载(mounting) 3.1文件系统结构 从不同的角度出…

柚子是肝病“催化剂”吗?医生:滋养肝细胞,5种水果或可常吃

人体就像是一台大型的机器&#xff0c;五脏六腑就像是机器里的重要组成部分&#xff0c;血管是为五脏六腑输送机油的管道&#xff0c;骨骼是机器的整体框架等&#xff0c;它们彼此之间互相配合&#xff0c;机器才能够正常运转。 如果其中一个构造受损了&#xff0c;那么会影响到…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java散酒营销系统w5at6

对于计算机专业的学生最头疼的就是临近毕业时的毕业设计,对于如何选题,技术选型等这些问题,难道了大部分人,确实,还没毕业的学生对于这些问题还比较陌生,只有学习的理论知识,没有实战经验怎么能独自完成毕业设计这一系列的流程,今天我们就聊聊如何快速应对这一难题. 比较容易的…

第二证券|元宇宙赛道西北首个“吃螃蟹者”入场

元世界展开势头一浪高过一浪之际&#xff0c;地处西北的咸阳高新区也下决心参加这场比赛。 近来&#xff0c;咸阳高新区管委会发布《咸阳高新区元世界工业先行区举动方案》&#xff0c;对行将打出的元世界“先手牌”从多个维度予以规划。 值得关注的是&#xff0c;外界印象中&…

iOS视频流采集概述(AVCaptureSession)

需求&#xff1a;需要采集到视频帧数据从而可以进行一系列处理(如: 裁剪&#xff0c;旋转&#xff0c;美颜&#xff0c;特效....). 所以,必须采集到视频帧数据. 阅读前提: 使用AVFoundation框架 采集音视频帧数据 Overview AVCaptureSession:使用相机或麦克风实时采集音视频…

Java编程实战12:解数独

目录解数独题目示例 1提示解答解题思路完整代码解数独 题目 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能…

1553_AURIX_TC275_CCU寄存器以及模块的独立时钟生成

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这里的BBB时钟应该是前面看到的调试时钟&#xff0c;BBB比较醒目&#xff0c;不过暂且不知道这个缩写是什么词语的缩写。 这个寄存器是CPU0的时钟设置寄存器。我有点好奇&#xff0c;这个寄…

多线程并发、线程池、同步方法、同步代码块(锁)

多线程&#xff1a; 同时执行多个程序 多线程需要硬件支持&#xff08;cpu&#xff09; 并行&#xff1a;在同一时刻&#xff0c;有多个指令在多个cpu上同时执行 并发&#xff1a;在同一时刻&#xff0c;有多个指令在单个cpu上交替执行 进程&#xff1a;正在运行的软件 独立…

详解VQVAE:Neural Discrete Representation Learning

VQVAE&#xff1a;Neural Discrete Representation Learning 原文链接&#xff1a;https://arxiv.org/abs/1711.00937 要看细节&#xff0c;强推&#xff0c;直接不用看论文了&#xff1a;VQ-VAE的简明介绍&#xff1a;量子化自编码器 - 科学空间|Scientific Spaces 一、问…

车辆管理怎么做?这六个车辆管理系统能帮到你!

通过本篇文章&#xff0c;您将了解以下问题&#xff1a;1、6个车辆管理系统盘点 2、企业使用车辆管理系统的价值是什么&#xff1f; 车辆管理系统指集合处理用车、还车、维保&#xff0c;监测油耗、车辆状态等车辆管理相关工作为一体的系统。 随着车辆数据的不断增长,如何快速…

武汉大学数据科学导论 WHU-data-science-introduction-996station GitHub鉴赏官

推荐理由&#xff1a;武汉大学数据科学导论 数据科学导论 声明: 本仓库构建目的为提供一个开源的可浏览的代码仓库,用于完成本人作业 代码作业的目录如下,纸质作业也已上传,下载地址 采用MIT协议,以供学习交流 第一次作业 决策树 第二次作业 Apriori k-means naive-bayes 第三次…

毕业设计 基于stm32与openmv的目标跟踪系统

文章目录0 前言课题简介设计框架3 硬件设计4 软件设计对被测物体的识别判断被测物体所在区域5 最后0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年…

Linux 负载均衡介绍之LVS工作模式-NAT转发模式

Linux 负载均衡介绍之LVS工作模式-NAT转发模式 图示&#xff1a; 工作原理&#xff1a; ①.客户端将请求发往前端的负载均衡器&#xff0c;请求报文源地址是CIP(客户端IP),后面统称为CIP)&#xff0c;目标地址为VIP(负载均衡器前端地址&#xff0c;后面统称为VIP)。 ②.负载…

RK3568平台开发系列讲解(视频篇)视频渲染OpenGL ES是什么

🚀返回专栏总目录 文章目录 一、什么是OpenGL ES二、上下文环境三、OpenGL(ES)的用途四、OpenGL 渲染管线五、创建显卡执行程序5.1、创建 Shader5.2、创建 Program沉淀、分享、成长,让自己和他人都能有所收获!😄 📢渲染并不单单是要把画面绘制到屏幕上,更多的是需要…

VirtualBox启动问题记录

很久之前安装过的虚拟机&#xff0c;虚拟机文件是安装在移动硬盘上的&#xff0c;最近在做redis集群试验的时候&#xff0c;打算重新使用一下这个虚拟机&#xff0c;在启动的时候出现了一些问题&#xff0c;特此记录一下&#xff0c;便于后面再出现此问题时不知所措。 实体机操…

ChatGPT 这玩意也太猛了!程序员朋友们,我在此严正呼吁大家:端好饭碗,谨防 AI!

大家周二好呀。 最近几天大火的 ChatGPT 你玩了吗&#xff1f; 如果你不知道它是个什么东西&#xff0c;那么我让它给你来个自我介绍&#xff1a; ​说白了&#xff0c;就是一个可以对话的人工智能。 我开始以为就是一个升级版的“小爱同学”&#xff0c;“小度小度”&#x…

第一个MyBatis程序

目录 一、新建项目 二、设置数据库和MyBatis的配置 &#x1f351;配置数据库的连接信息 &#x1f351;配置MyBatis XML存放位置和命名规则 三、MyBatis实现查询操作 &#x1f34e;MyBatis的组成 &#x1f34e;使用MyBatis实现查询功能 &#x1f34e;SpringBoot单元测…

TF卡格式化了怎么办?tf卡数据恢复,看这3个方法

现在手机存储卡都很普及&#xff0c;TF卡是最常见的存储卡之一。但是你知道吗&#xff1f;TF卡也会有问题&#xff0c;比如出现误删数据&#xff0c;或者把数据格式化。因为手机内存有限&#xff0c;我们经常会把 TF卡设置为默认的最大空间&#xff0c;这样就可能会出现存储空间…