自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 正则表达式

工具软件:RegexBuddy注意区分大小写,大写是相反的意思[]:能够匹配中括号中任意一个字符除了^和-之外,正则表达式的特殊符号,如果被包含到中括号中,则失去了特殊意义(如,. 但其它标准字符集仍有意义)。5. 量词(Quantifier)修饰匹配次数的特殊符号默认匹配次数为贪婪模式,即匹配的字符越多越好;可以设置匹配次数为非贪婪模式(即,匹配的字符越少越好):在修饰匹配次数的特殊符号后再加上一个“?”反向引用:预搜索(零宽断言、环视)只进行子表达式的匹配,匹配内容不计入最终的匹配结果,

2022-06-29 20:50:05 166

原创 刷题-牛客算法入门

描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。数据范围:0

2022-06-07 20:20:30 169

原创 刷题-牛客算法入门

AB11 合并两个排序的链表描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围:0≤n≤1000,−1000≤节点值≤1000要求:空间复杂度O(1),时间复杂度O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6}。实现1:(标记两个结点)/*public class ListNode { int val; ListNode next = nul

2022-05-15 19:23:21 372

原创 刷题-牛客算法入门

AB5 点击消除描述牛牛拿到了一个字符串。他每次“点击”,可以把字符串中相邻两个相同字母消除,例如,字符串"abbc"点击后可以生成"ac"。但相同而不相邻、不相同的相邻字母都是不可以被消除的。牛牛想把字符串变得尽可能短。他想知道,当他点击了足够多次之后,字符串的最终形态是什么?输入描述:一个字符串,仅由小写字母组成。(字符串长度不大于300000)输出描述:一个字符串,为“点击消除”后的最终形态。若最终的字符串为空串,则输出0。我的实现:将字符依次入栈,如果相邻字符相等,则出栈,否则

2022-05-15 19:21:28 254

原创 刷题-牛客算法入门

AB10 反转链表描述给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 0≤n≤1000要求:空间复杂度O(1) ,时间复杂度O(n) 。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。实现1:(栈)思路比较简单:遍历链表,将结点都存储在栈中;然后,将结点依次出栈,即得到了反转之后的链表。需要注意的是:1.首先可以设置一个哨兵结点dummy(作用:记录头结

2022-05-15 17:20:26 214

原创 刷题-牛客算法入门

AB8 循环队列描述请你实现一个循环队列,该循环队列可利用的空间大小等于n个int型变量的大小。操作:push x:将x加入到循环队列尾端。若循环队列已满,输出"full"(不含引号),否则不输出任何内容。保证x为int型整数。front:输出队首元素,队首不出队。若队列为空,输出"empty"(不含引号)。pop:输出队首元素,且队首出队。若队列为空,输出"empty"(不含引号)。输入描述:第一行输入两个整数n,q (1≤n,q≤10的5次方),表示循环队列可利用的空间大小和操作次数。

2022-05-12 19:51:37 342

原创 正则表达式

1.正则表达式(Regular Expression)简介为什么需要正则表达式?文本的复杂处理。正则表达式的优势和用途?一种强大而灵活的文本处理工具;大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式。正则表达式定义:描述了一个规则,通过这个规则可以匹配一类字符串。工具软件:RegexBuddy2.正则表达式语法普通字符:字母、数字、汉字、下划线、没有特殊定义的标点符号。匹配与之相同的一个字符。简单的转义字符字符作用\n代表换行符\

2022-05-11 11:26:03 114

原创 刷题-牛客算法入门

AB4 逆波兰表达式求值描述给定一个逆波兰表达式,求表达式的值。数据范围:表达式长度满足 1≤n≤(10的四次方),表达式中仅包含数字和 + ,- , * , /,其中数字的大小满足 ∣val∣≤200。示例:输入 [“2”,“1”,“+”,“4”,“*”]返回值 12我的实现:将数值放入栈中,当遇到运算符时出栈进行计算,并将计算的结果入栈,最后返回栈顶的值,即为最终的计算结果。其实第一个判断可以省略,放到switch语句的default里面,就不用匹配operation了。

2022-05-10 11:57:39 113

原创 刷题-牛客算法入门

AB3 有效括号序列描述给出一个仅包含字符’(‘,’)‘,’{‘,’}‘,’[‘和’]',的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。数据范围:字符串长度0≤n≤10000要求:空间复杂度O(n),时间复杂度O(n)我的实现:很简单的一道题,但是我却做复杂了。我是直接将左括号(“({[”)加入到栈中,然后拿右括号去比对,else if里面写的很复杂,并且可以直接用pop()的,因为不一样直

2022-05-09 16:17:56 457

原创 刷题-牛客算法入门

AB7 队列描述请你实现一个队列。操作:push x:将x加入队尾,保证x为int型整数。pop:输出队首,并让队首出队front:输出队首:队首不出队输入描述:第一行为一个正整数n ,代表操作次数。(1≤n≤100000)接下来的n,每行为一个字符串,代表一个操作。保证操作是题目描述中三种中的一种。输出描述:如果操作为push,则不输出任何东西。如果为另外两种,若队列为空,则输出 "error“否则按对应操作输出。我的实现:(通过链表实现先进先出队列)与之前实现下压栈的思路差

2022-05-08 17:04:34 437

原创 刷题-牛客算法入门

AB2 栈的压入、弹出序列描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。0<=pushV.length == popV.length <=1000-1000<=pushV[i]<=1000pushV 的所有数字均不相同我的实现:写的比较复杂,首

2022-05-08 17:02:03 341

原创 刷题-牛客算法入门

AB1 栈描述请你实现一个栈。操作:push x:将加x入栈,保证 为 int 型整数。pop:输出栈顶,并让栈顶出栈top:输出栈顶,栈顶不出栈输入描述:第一行为一个正整数n,代表操作次数。(1≤n≤100000)接下来的n,每行为一个字符串,代表一个操作。保证操作是题目描述中三种中的一种。输出描述:如果操作为push,则不输出任何东西。如果为另外两种,若栈为空,则输出 "error“否则按对应操作输出。我的实现:(通过链表实现下压栈)import java.util.Scan

2022-05-08 16:56:28 654

原创 java高级

1.注解 AnnotationAnnotation是从JDK5.0开始引入的新技术。Annotation的作用:不是程序本身,可以对程序作出解释。可以被其它程序(比如,编译器等)读取。内置注解:@Override@Deprecated@SuppressWarnings1.1 自定义注解使用**@interface自定义注解**时,自动继承了java.lang.annotation.Annotation接口要点:@interface用来声明一个注解格式为:public @i

2022-05-05 22:41:39 118

原创 Java面向对象基础

1.面向过程和面向对象面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。面向过程:思考问题时,我们首先思考“怎么按步骤实现?”并将步骤对应成方法,一步一步,最终完成。这个适合简单任务,不需要过多协作的情况下。面向对象:思想更契合人的思维模式,我们首先思考的是“怎么设计这个事物?”面向过程和面向对象的总结:1.都是解决问题的思维方式,都是代码组织的方式;2.解决简单问题可以使用面向过程;3.解决复杂问题:宏观上使用面向对象把握,微观处理上仍然

2022-02-20 15:59:26 323

原创 mac os 安装chromedriver

1.直接在官网下载对应版本的chromedriver;2.将下载好的zip文件解压,并将chromedriver移动到/usr/local/bin目录下:mv ~/Downloads/chromedriver /usr/local/bin3.使用chromedriver --version查看是否安装成功时,出现“无法打开chromedriver,因为无法验证开发者。”的问题;原因:mac不信任我们下载下来的webdriver文件,所以打开安全隐私模式,添加信任就可以了。解决:

2022-02-08 21:32:42 546

原创 算法1-递归

基本思想:“自己调自己”递归结构包含两个部分:定义递归头。即,什么时候不调用自身方法,也就是递归的结束条件。如果没有头,将陷入死循环。 递归体。递归的优点程序简单递归的缺陷递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。任何能用递归解决的问题也能用迭代解决。在要求高性能的情况下,应尽量避免使用递归,递归调用既花时间又耗内存。应用快排; 百度爬虫;...

2021-12-15 22:55:52 94

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除