【刷题心得】双指针法|HashSet<T>
创始人
2024-03-23 02:33:11
0

题目

1 概念梳理

1.1 ISet HashSet

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

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

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 str = new HashSet();int n = word.Length;int p1, p2=0;while(true) {while(p2

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

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

相关内容

热门资讯

搭建温暖桥梁:湖南芙蓉律师事务... 这个冬天,湖南芙蓉律师事务所想搭一座“温暖桥梁”——发起“橙”意满满助农公益捐赠活动,计划捐赠20万...
原创 日... 目前中日关系的紧张局势已经无法用摩擦或争议这些温和的词汇来形容了。真正发生的变化,不仅仅是某一具体事...
央行报告:着力健全有利于“长钱... 新京报贝壳财经讯 12月26日,中国人民银行发布《中国金融稳定报告(2025)》。报告提出,下一步,...
从“小洛熙”事件谈起:芙蓉律所... 近期,宁波大学附属妇女儿童医院发生的“小洛熙”事件引发了社会广泛关注。一名五月龄婴儿的不幸离世,在牵...
如何看待精神病人犯罪,普通人如... 这起精神病人杀人案备受关注,审判当天,许多市民在法院外围观。 成都27岁女子家门口被害案一审宣判后,...
云南昆明发布4项沿边特色的制度... 人民网昆明12月27日电 (记者蔡树菁)12月26日,中国(云南)自由贸易试验区昆明片区举行制度创新...
原创 大... 大学生起诉父亲追讨学费电脑费:亲情与法律的边界之争 当22岁的大学生张某将亲生父亲告上法庭索要学费和...
索赔23.14亿元!吉利子公司... 红星资本局12月27日消息,12月26日晚间,欣旺达(300207.SZ)披露公告称,子公司欣旺达动...
深化数智赋能 北京市检察机关有... 人民网北京12月27日电 (记者王子锋)虚假诉讼破坏社会诚信、损害人民群众合法权益、危害司法公信力,...